The Seele Neural Consensus Algorithm has been getting everyone riled up for a while, and I’ve performed a Seele code review before – but ok people, I get it, you want another one. Please stop asking now. As you’ll see in the conclusion, I will be keeping my eye on this and there may be further updates on the Seele blockchain to come.
Instead of looking at the code in entirety, we are going to look at what did they change since my last review.
Adding some string functions to levelDB
Added some mini node code (presumably to make testing easier for them)
Some substance in adding ASN.1 (a communication protocol, one I like a lot), and ECIES encryption. Nothing amazing yet, but steps towards improvement. Some RPC, transaction, and block updates, nothing that isn’t in go-ethereum.
Seele service looked interesting, but no substance yet. Does look like they are setting up for their multiple networks though. How does building a multi layer p2p network add value again?
This by the way, has been the majority of changes, changing node to Node an levelDB to LevelDB, they really like capitalizing the first letter.
Added block downloader events.
Sha3Miner added, and Sha3Miner removed.
Ok, starting with their Trie structure for nodes, this would be their “forest”, so we are seeing some steps towards their implementation.
Saving the current state in the block. The block is the state, this is cyclic redundancy, I must be missing something? So, they are splitting up saving blocks from account space. Then saving the reference of the account state into the blockchain. I don’t know why. Could this allow for multiple blockchains each with their own account snapshot? Will investigate more on this.
A payload object added to the transactions (making transactions more mutable, but bigger).
Adding the reward as a transaction in the block. A modification I normally do as well.
Validating the new block reward transactions as first transaction of a signed block.
Seele Code Review Conclusion
I admit, they have made some good improvements, they are starting to build out the skeleton of their idea, but it’s still just an idea. Normally the process is idea > prototype > raise funds, I guess sometimes that just isn’t required.
To be clear, none of their concepts have been proven and none of them are in any state of completion within the code. For now it’s still just a go-ethereum copy, but at least they are working on it and they are making some changes that I like, I’ll keep a closer eye on the Seele Team.
Disclaimer: Crypto Briefing code reviews are performed by auditing what is on display in the master branch of the repo’s made available. This was performed as an educational review and any comments in the article are the opinion of the writer. It is normal for code to change rapidly, hence we timestamp our code reviews so that they present a snapshot at a moment in time. Information contained herein should not be used as any comment or advice on the project as a whole.
Seele Code Review Timestamp: April 14th, 2018 at 07:18 GMT