rainblock / verifier Goto Github PK
View Code? Open in Web Editor NEWThe RainBlock verifier node
The RainBlock verifier node
The verifier currently shards the storage updates incorrectly.
For executing the transaction in the sample/txn.bin which updates the following two accounts:
<Buffer 00 00 00 00 00 00 00 00 00 00 00 00 a1 e4 38 0a 3b 1f 74 96 73 e2 70 22 99 93 ee 55 f3 56 63 b4> and
<Buffer 00 00 00 00 00 00 00 00 00 00 00 00 5d f9 b8 79 91 26 2f 6b a4 71 f0 97 58 cd e1 c0 fc 1d e7 34>
The hashed address are:
<Buffer 51 70 55 3c 37 8d 94 cf 46 92 a1 63 d1 0b 9b e7 40 1b b8 0c e1 89 bc 4c c4 f7 a9 bd 1d 45 bd e3>
<Buffer b7 14 7c 94 61 44 fe dc de 6f 4c a7 1a 9d 41 24 64 05 63 54 28 19 25 22 fe a7 db 60 02 36 a5 02>
So the shards that should get the update requests are shard 5 and shard 11.
But, the shards that get the updates are 14 and 10 respectively.
blockGenerator.ts currently assigns nonce to 0n, where a 8 byte nonce is expected by the storageNode.
verifierService.ts:21 retrieves the binary transaction from the client request. But if the transaction is undefined, the txBinary on line 21 could be a empty buffer.
On the following line, the txBinary is RlpDecoded, which throws an error if txBinary is an empty buffer.
cachedTree.put(key, value) will not insert key value pairs into a cachedMerklePatriciaTree as CachedMerklePatriciaTree can be pruned with a HashNode in the path of the key.
verifyAndAddWitness should be used to insert values into the cachedTree.
src/blockGenerator.ts:5:60 - error TS2307: Cannot find module './ethereumAccount'.
5 import { EthereumAccount, EthereumAccountFromBuffer } from './ethereumAccount';
blockGenerator.ts imports EthereumAccount
, EthereumAccountFromBuffer
from ./ethereumAccount on line #5, when there is no file named ethereumAccount.ts
in the src directory
Verifier computes a blockhash by hashing the entire rlp block. However, block hash in Ethereum is just the hash of the rlp block header.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.