codechain
codechain copied to clipboard
CodeChain's official implementation in Rust.
Considering a blockchain is a distributed ledger, each user will send RPC requests to its own distributed node. So the RPC throughput per node is not an important factor. However,...
ACCEPTABLE_DRIFT_SECS is used to check timestamp in verification. allowed_time_gap is used to check timestamp in Tendermint. Let's use only one variable for them.
This phenomenon was found on 2019.12.17 at about 2 P.M. The monitor sends a codechain death confirmation because the node monitor that was watching had been dead. The log is...
In the randomized leader election scheme, the block seal format changed. Therefore, a new era must be introduced to distinguish old and new blocks
Current design treats self generated proposals and the proposals generated by others identically. Priorities can be calculated without generating the block. If a node registers its `Priority` to the `proposal`...
Header chain is not verified. Anyone could generate valid and high score header chain. We should not read data from the header chain. If we only use the Tendermint consensus,...
Currently, CodeChain interacts with uncompressed `PriorityMessage`s and it increases network cost. We can leverage local computation powers to reduce network cost by compressing `PriorityMessage`s. Selective decompression and decoding will also...
In the VRF-based randomized leader election, the method `request_proposal_to_any` is awkward. If the tendermint module introduce a new peer state "priority", it can request proposals only to the nodes whose...
References: * https://github.com/zcash/zcash/issues/147 * https://github.com/zcash/zcash/issues/147#issuecomment-221534222
* Block sync - [ ] Invalid fields - [x] Invalid parent - [ ] Invalid timestamp - [x] Invalid number - [x] Invalid author - [x] Invalid extradata -...