* Add RPC eth_chainId for querying the current blockchain chain ID
Currently although we can use `net_version` RPC call to get the
current network ID, there's no RPC for querying the chain ID. This
makes it impossible to determine the current actual blockchain using
the RPC. An ETH/ETC client can accidentally connect to an ETC/ETH RPC
endpoint without knowing it unless it tries to sign a transaction or
it fetch a transaction that is known to have signed with a chain
ID. This has since caused trouble for application developers, such as
MetaMask, to add multi-chain support.
The same RPC endpoint is also about to be merged for ETC's
go-ethereum: https://github.com/ethereumproject/go-ethereum/pull/336
* Add eth_chainId to js's web3 interface
* Add a mocked test for eth_chainId
* Add chainId in js's jsonrpc interfaces
* Change return type for eth_chainId to `Option<u64>`
* Change name eth_chainId to parity_chainId
* Wrong test name and missed var for rpc_parity_chain_id test
* Use U256 to return chainId and fix for master
u64 returns decimal integer, and there seems to be no type called
U64. So here I use U256 to return the hex integer.
* Fix chainID test
Before EIP155 fork number, chainID should be null.
* Change both parity_chainId and transaction::chainId to use U64
This makes it consistent that all chain ids returned are hex string.
* Fix wrong U64 serialization
* Node-health to a separate crate.
* Initialize node_health outside of dapps.
* Expose health over RPC.
* Bring back 412 and fix JS.
* Add health to workspace and tests.
* Fix compilation without default features.
* Fix borked merge.
* Revert to generics to avoid virtual calls.
* Fix node-health tests.
* Add missing trailing comma.
* RwLock
* getting there
* argh
* parking_lot
* rpc
* wax on wax off
* almost there
* remove lock
* write over read
* works
* linting
* small updates
* dissapearing act
* router update
* complete
* one m
* grumbles1
* grumbles part II
* parking_lot->util
* missed test case
* fied package-lock.json
* small fixes
* 404 tests failing
* cleanup
* cleanup 2
* updates and the likes
* play
* simplify filter
* f-ing bugs
* read->write
* Address own grumbles.
* Fix test.
* Clarify function name
Function checks if sealing is currently underway, not to be confused
with checking whether the engine performs internal sealing.
* Error when work called on internal sealing engine
* Error submitting work for internal sealing engine
* Fix inverted bool and style grumbles
* Add can_produce_work_package to TestMinerService
* Error when setting engine signer on PoW chain
* Unit tests for engine signing
Setting engine signer should fail if chain does not seal internally
or client lacks account provider.
* Tweak TestMinerService
* Fix minor style grumbles
This is a huge change, which includes some changes to replace code that
originally cloned to reuse allocations instead. The updated
`elastic-array` crate renames its consuming `Vec`-conversion method to
`into_vec`, which means that I can do a simple
`sed -i 's/to_vec/into_vec/'` and then fix the compilation errors.
This commit is probably a minor performance win and definitely a
significant readability win.
* separate modules for consensus snapshot chunks
* bulk of authority warp logic
* finish authority warp implementation
* squash warnings and enable authority snapshot mode
* test harness for PoA
* fiddle with harness
* epoch generation proof fixes
* update constructor code
* store epoch transition proof after block commit
* basic snap and restore test
* use keyvaluedb in state restoration
* decompress chunks
* fix encoding issues
* fixed-to-contract-to-contract test
* implement ancient block import
* restore genesis transition in PoW snapshot
* add format version method to snapshot components
* supported version numbers in snapshot_components
* allow returning of ancient epoch transitions
* genesis hash mismatch check
* remove commented code
* ECDKG protocol prototype
* added test for enc/dec math
* get rid of decryption_session
* added licenses
* fix after merge
* get rid of unused serde dependency
* doc
* decryption session [without commutative enc]
* failed_dec_session
* fixed tests
* added commen
* added more decryption session tests
* helper to localize an issue
* more computations to localize error
* decryption_session::SessionParams
* added tests for EC math to localize problem
* secretstore network transport
* encryption_session_works_over_network
* network errors processing
* connecting to KeyServer
* licenses
* get rid of debug println-s
* fixed secretstore args
* encryption results are stored in KS database
* decryption protocol works over network
* enc/dec Session traits
* fixing warnings
* fix after merge
* on-chain ACL checker proto
* fixed compilation
* fixed compilation
* finally fixed <odd>-of-N-scheme
* temporary commented test
* 1-of-N works in math
* scheme 1-of-N works
* updated AclStorage with real contract ABI
* remove unnecessary unsafety
* fixed grumbles
* wakeup on access denied
* encrypt secretstore messages
* 'shadow' decryption
* fix grumbles
* lost files
* secretstore cli-options
* decryption seccion when ACL check failed on master
* disallow regenerating key for existing document
* removed obsolete TODO
* fix after merge
* switched to tokio_io
* fix after merge
* fix after merge
* fix after merge
* fix after merge
* fix after merge
* fixed test
* fix after merge
* encryption session errors are now fatal
* session timeouts
* autorestart decryption session
* remove sessions on completion
* exclude disconnected nodes from decryption session
* test for enc/dec session over network with 1 node
* remove debug printlns
* fixed 1-of-1 scheme
* drop for KeyServerHttpListener
* Use standard encryption and decryption (as in RPC)
* added some tests
* moved DEFAULT_MAC to ethcrypto
* rpc_secretstore_encrypt_and_decrypt
* serialization with "0x" prefix (RPC compatibility)
* secretstore RPC API
* fix after merge
* fixed typo
* secretstore_shadowDecrypt RPC
* enable secretstore RPCs by default
* fixed test
* SecStore RPCs available without SecStore feature
* fixed grumbles
* lost files
* added password argument to Parity RPCs
* update docs
* lost file
* apply contract constructors at spec load time
* debugging
* do trie updates in two stages
* add lint exception to newly-dead constructor
* squash warning in RPC tests
* kill dead accountdb constructors
* restore accountdb constructors under test configuration
* use provided state root in spec, if it exists