Is there any alternative to Intel's PoET in hyperledger sawtooth? - intel

I found that hyperledger sawtooth besides PoET also works with RAFT. And I was wondering if there any other consensus algorithms compatible with HyperLedger Sawtooth?

Sawtooth supports DevMode (for development use only) and PoET (both with and without SGX).
PBFT is in the works, but not yet released.
Remme.io uses Sawtooth and wrote another custom consensus algorithm.

Related

Axon Framework - Does it support ActiveMQ integration

Does Axon 4.0 support active mq integration?
I understand that it has got amqp-extension, however, it seems to be based on rabbit mq (com.rabbitmq » amqp-client).
Not able to find any examples either.
The Axon-AMQP module supports AMQP 0.9. The 1.0 specification isn’t supported yet.
The fact that Axon yses the RabbitMQ client doesn’t make it dependent on AMQP. It’s just an implementation that speaks AMQP 0.9.
It should be fairly easy to integrate Axon with other nessaging systems, taking the AMQP module as an example.
There might already be community-built modules out there. It’s worth doing a quick search on Google/Github to see if there is anything that suits your needs.

What are difference between Computer Vision API v1.0 and v2.0?

Both have their own documentation and I see only small wording differences between those. Are there list of things that have actually changed? Has OCR for example improved on version 2.0 or it's the same except I guess the handwriting recognition? Some kind of changelog would really make a difference.
The only difference between v1.0 and v2.0 is the revised /recognizedText which has a breaking change in the input/output. All other endpoints are exactly the same. Also, if you have an key in an up-to-date pricing tier (including free), your API key will work in both versions.
As you may know, the Computer Vision API has two different OCR endpoints. The /ocr endpoint runs the older recognition engine with broader language coverage. The newer /recognizeText endpoint, which in v1.0 handled handwritten text, in v2.0 covers both handwritten and printed text using a newer engine. The /recognizeText endpoint remains English-only for now. You select between handwritten/printed modalities using the mode query parameter. See
documentation here.
As for documenting changes, there isn't one obvious place for this unfortunately. One option is to check the swagger repo.

What are best practices for Apache Karaf feature

Are there any known best practices or projects to look into for an example of Apache Karaf feature?
All I has found is the official documentation: http://karaf.apache.org/manual/latest/#_feature_and_resolver
But it is not covering common usage examples.
Here are the guiding principals I defined for our consulting practice:
Have your features.xml file process as a filtered resource in maven so you can do version substitution, etc.
Depend on semantic version ranges, not specific versions as much as possible
Specify start-levels
Create a single features repository (features.xml) for a business domain -- ie Ordering, Billing, Quoting, etc.
Create a separate feature for API vs implementation
Specify a 'capability' when defining an implementation feature
Have dependent features (features that depend on features) depend on the API feature and specify a 'requirement' that is satisfied by an implementation that specifies a 'capability')
This allows you to swap implementations without re-defining features, and features that depend on other features

How to generate SHA3-256 in .NET Core?

Is there an option to calculate SHA3-256 hashes in .NET Core? The goal is to recreate the isChecksumAddress util function in web3.js
No, there is no way of doing that now with pure dotnet core.
It's been on the watch list since it was announced. Since we don't implement cryptographic algorithms within .NET we're waiting on support from the underlying platforms (Windows CNG, Apple Security.framework, and OpenSSL).
See this issue.
But you might have a better luck with BouncyCastle. It has an implementation here but I don't know if it is out yet (in nuget).
FIPS-202 SHA3-256 (and all other SHA3 variants, e.g. SHA3-512, SHA3-SHAKE256) are implemented here, in pure .NET, with no dependencies on external APIs like BouncyCastle.
GitHub
https://github.com/series0ne/CORE/tree/master/Core/Security/Cryptography
Nuget
https://www.nuget.org/packages/SeriesOne.Core/
You can use SHA3.Net that is a SHA3 wrapper of the BouncyCastle implementation, implementing System.Security.Cryptography.HashAlgorithm
https://www.nuget.org/packages/SHA3.Net/

Encryption API for C#2 recommendations?

We need a paid for supported Encryption / Decryption API for a project - AES >256?
I dont want the developers coding their own encryption / decryption even using the built in stuff. To many chances to go wrong.
Links to sites much valued.
UPDATE
Due to the fact as many have said - Its hard to understand if you are not familar with encryption, and get a small thing wrong and its busted...
I have seen answers and will be getting our own encryption/decryption from the builtin - but all the team will need to peer review.
For information BlowFish.Net is good, and performs faster than the builtin crypto routines, which when you start to look at encrypting/decrpyting data into a database can have some massive perf issues ...
http://www.codinghorror.com/blog/archives/001268.html
"even using the built in stuff"
The reason that it's built in is so that people have tested, reliable algorithms available to use that implement standards, not black box third party APIs that might not. What are the "chances to go wrong"?
Maybe you need to switch to Java, you can always opt to use third party JSSE providers there if you're paranoid about the built-in provider.
Bouncy Castle is a well respected and well developed .NET encryption library that is usually recommend for these sorts of questions. But what's wrong with using the System.Security.Cryptography Namespace? - it is extremely secure, very fast and doesn't require any external libraries. Here's an example of how to implement it.
Oh, and "using the built in stuff" will mean it is less likely to go wrong. Your developers won't be coding their own classes, just using the interfaces available which are easy to use and have been very rigorously tested.. Also, the "built in stuff" will be well supported by Microsoft, so if you want to upgrade to C# 4.0 (or C# 5.0 in the future?) you probably won't need to change your code at all.
If you were to use a 3rd party library you would most likely still run into the same issues, which basically boil down to not understanding the pitfalls of encryption.
Without a decent understanding you'll most probably make mistakes with key management, or using bad initialisation vectors or keys. These are issues you'll need to understand to tackle regardless of whether you use the inbuilt libraries (which are fine), or a 3rd party library.
If its something you feel worried about enough, the best recommendation is probably to bring in someone, or better yet - train up people to understand encryption.
Use the builtin 'stuff'. But make sure you use it in the correct mode.

Resources