* Made nodes data concatenate as RLP sequences instead of bytes
* Add test for getNodeData dispatch
* Update getNodeData to return data for non-aura networks
* fix modexp overflow panic in debug mode
* Added one more unit test for modexp
* Remove redundant bytes from modexp unit test
Co-authored-by: POA <33550681+poa@users.noreply.github.com>
* added eth_maxPriorityFeePerGas rpc call
* cargo fmt
* moved block_base_fee implementation into the trait
* added basic test for eth_maxPriorityFeePerGas
* added test for eth_maxPriorityFeePerGas calculation
* Added support for zero-cost transactions
* Added 'eip1559_not_activated' error
* Fixes 'chain::supplier::test::return_nodes' test
* cargo fmt
* cargo fmt
* made calculation of fallback priority fee to ignore zero-cost transactions
* cargo fmt
* made use of 'saturating_sub' instead of minus
* Accept GetNodeData requests
* Implement blockchain client method for node data requests
* Reuse old database read methods for node data
* fmt
* Copy & paste old tests...
* ... and make them work
* fmt
* Allow eth/66
* Add eth/66 request ids
* fmt
* Remove some leftovers
* fmt
* Change behaviour in case of missing peer info
- Assume eth/66 protocol, not earlier one
- Log just a trace, not an error
* eip1559 hard fork activation
* eip1559 hard fork activation 2
* added new transaction type for eip1559
* added base fee field to block header
* fmt fix
* added base fee calculation. added block header validation against base fee
* fmt
* temporarily added modified transaction pool
* tx pool fix of PendingIterator
* tx pool fix of UnorderedIterator
* tx pool added test for set_scoring
* transaction pool changes
* added tests for eip1559 transaction and eip1559 receipt
* added test for eip1559 transaction execution
* block gas limit / block gas target handling
* base fee verification moved out of engine
* calculate_base_fee moved to EthereumMachine
* handling of base_fee_per_gas as part of seal
* handling of base_fee_per_gas changed. Different encoding/decoding of block header
* eip1559 transaction execution - gas price handling
* eip1559 transaction execution - verification, fee burning
* effectiveGasPrice removed from the receipt payload (specs)
* added support for 1559 txs in tx pool verification
* added Aleut test network configuration
* effective_tip_scaled replaced by typed_gas_price
* eip 3198 - Basefee opcode
* rpc - updated structs Block and Header
* rpc changes for 1559
* variable renaming according to spec
* - typed_gas_price renamed to effective_gas_price
- elasticity_multiplier definition moved to update_schedule()
* calculate_base_fee simplified
* Evm environment context temporary fix for gas limit
* fmt fix
* fixed fake_sign::sign_call
* temporary fix for GASLIMIT opcode to provide gas_target actually
* gas_target removed from block header according to spec change: https://github.com/ethereum/EIPs/pull/3566
* tx pool verification fix
* env_info base fee changed to Option
* fmt fix
* pretty format
* updated ethereum tests
* cache_pending refresh on each update of score
* code review fixes
* fmt fix
* code review fix - changed handling of eip1559_base_fee_max_change_denominator
* code review fix - modification.gas_price
* Skip gas_limit_bump for Aura
* gas_limit calculation changed to target ceil
* gas_limit calculation will target ceil on 1559 activation block
* transaction verification updated according spec: https://github.com/ethereum/EIPs/pull/3594
* updated json tests
* ethereum json tests fix for base_fee
* Add EIP-3541 transition block parameter
* Implement EIP-3541
* Add a unit test for EIP-3541
* Add error type for attempt to deploy invalid code
* fmt
* Implement changed gas refund rules according to EIP-3529
* Add a unit test for changed gas refunds
* Add missing comment
* Add fork block to spec.hard_forks
Since the two hotfix releases, v3.2.3 and v3.2.4, did not include the
changes from v3.2.2-rc.1, they should be mentioned in the changelog for
v3.2.5-rc.1 again.
* Executable queue for ancient blocks inclusion
* Add drop trait for client
* Added shutdown to tests
* Remove doubled call
* Use reth-util from reth repo
* Add SealingState; don't prepare block when not ready. (#10529)
* Fix a few typos and unused warnings. #10803
* Configuration map of block reward contract addresses (#10875)
* Step duration map configuration parameter ported from the POA Network fork (#10902)
* Add a 2/3 quorum option to Authority Round. (#10909)
* Additional arithmetic EVM opcode benchmarks (#10916)
* RPC method for clearing the engine signer (#10920)
* authority_round: Fix next_step_time_duration. (#11379)
* Aura: Report malice on sibling blocks from the same validator (#11160)
* TxPermissions ver 3: gas price & data (#11170)
* Add randomness contract support to AuthorityRound. (#10946)
* Set the block gas limit to the value returned by a contract call (#10928)
* AuthorityEngine: Minor cleanups. (#11408)
* Add POSDAO transition and malice report queue. (#11245)
* PoA call validators on_close_block
* Actualize spec files for POA Networks
* Some fixes after merge
* Crypto error desc
* AuRa on_close_block Error::Old fix
Co-authored-by: POA <33550681+poa@users.noreply.github.com>
* Add filters for pending transactions to RPC API
Allow filtering results in the parity_pendingTransaction endpoint as described in the API docs.
* Make arguments in parity_pendingTransactions work together
filter and limit
* fmt
* Requested changes
- filter in ethcore to avoid unneccessary copying
- rename gas_price to gasPrice
- implement requesting contract creation txs with "action"
* Some beautifying
Remove missing import and unneccessary dependency entry, add a comment
and set right lint level on new module
* fixed broken build after merge
* fmt
* fixing CI errors: type conversion
Co-authored-by: Karim Agha <karim.dev@gmail.com>
* Migrating use crate::Type imports to Rust 2018 edition
* import name fixes
* fmt
* removing diff leftover
* catching up with latest developments on dev
* fmt
* removing another diff leftover
* Enabling github action tests
* Fix failing tests
* AccessList to Option in json
* failing rust example removed
* AccessList for jsonrpc
* Tx type as sequence, AccessList as type
The start() method had two different signatures depending on configuration. Since ethcore is built with either config depending on the build target, this resulted in compiler errors for either evmbin or oe.
* Allow default block parameter to be blockHash
Backport to 3.1 of https://github.com/openethereum/openethereum/pull/10932
Co-authored-by: Richard Patel <me@terorie.dev>
* Request canonical with BlockHash
Co-authored-by: Seun LanLege <seunlanlege@gmail.com>
Co-authored-by: Richard Patel <me@terorie.dev>
* Revert "Disable windows2019, remove tagged windows artifact"
This reverts commit 08e6cca3e5.
* Allow running CI on windows only when pushing to main/dev
* Remove unneeded block code
* Add docker deployment for Github actions
* Add docker specs for the release of tagged and latest versions, also add specs for nightly builds
Co-authored-by: Denis Granha <denis@gnosis.pm>
* Synchronize block verification
* max_round_blocks_to_import set to 1
* Fixed test that rely on 12block batches
Co-authored-by: adria0.eth <5526331+adria0@users.noreply.github.com>
* Enable EIP-2384 for ice age hard fork (#11281)
* ethcore/res: activate agharta on classic 9573000 (#11331)
* Istanbul HF in xDai (2019-12-12) (#11299)
* Istanbul HF in POA Core (2019-12-19) (#11298)
* Istanbul HF in POA Sokol (2019-12-05) (#11282)
* Activate ecip-1061 on kotti and mordor (#11338)
* Enable basic verification of local transactions (#11332)
* Disallow EIP-86 style null signatures for transactions outside tests (#11335)
* ropsten #6631425 foundation #8798209 (#11201)
* [stable] builtin, istanbul and mordor testnet backports (#11234)
* ethcore-builtin (#10850)
* [builtin]: support `multiple prices and activations` in chain spec (#11039)
* [chain specs]: activate `Istanbul` on mainnet (#11228)
* ethcore/res: add mordor testnet configuration (#11200)
* Update list of bootnodes for xDai chain (#11236)
* ethcore: remove `test-helper feat` from build (#11047)
* Secret store: fix Instant::now() related race in net_keep_alive (#11155) (#11159)
* [stable]: backport #10691 and #10683 (#11143)
* Fix compiler warning (that will become an error) (#10683)
* Refactor Clique stepping (#10691)
* Add Constantinople eips to the dev (instant_seal) config (#10809)
* Add cargo-remote dir to .gitignore (?)
* Insert explicit warning into the panic hook (#11225)
* Fix docker centos build (#11226)
* Update MIX bootnodes. (#11203)
* Use provided usd-per-eth value if an endpoint is specified (#11209)
* Add new line after writing block to hex file. (#10984)
* Type annotation for next_key() matching of json filter options (#11192) (but no `FilterOption` in 2.5 so…)
* Upgrade jsonrpc to latest (#11206)
* [CI] check evmbin build (#11096)
* Correct EIP-712 encoding (#11092)
* [client]: Fix for incorrectly dropped consensus messages (#11086)
* Fix block detail updating (#11015)
* Switching sccache from local to Redis (#10971)
* Made ecrecover implementation trait public (#11188)
* [dependencies]: jsonrpc `14.0.1` (#11183)
* [receipt]: add `sender` & `receiver` to `RichReceipts` (#11179)
* [ethcore/builtin]: do not panic in blake2pricer on short input (#11180)
* util Host: fix a double Read Lock bug in fn Host::session_readable() (#11175)
* ethcore client: fix a double Read Lock bug in fn Client::logs() (#11172)
* Change how RPCs eth_call and eth_estimateGas handle "Pending" (#11127)
* Cleanup stratum a bit (#11161)
* Upgrade to jsonrpc v14 (#11151)
* SecretStore: expose restore_key_public in HTTP API (#10241)
* ethcore/res: activate Istanbul on Ropsten, Görli, Rinkeby, Kovan (#11068)
* ethcore/res: activate Istanbul on Ropsten block 6485846
* ethcore/res: activate Istanbul on Goerli block 1561651
* ethcore/res: use hex values for Istanbul specs
* ethcore/res: fix trailing comma
* ethcore/res: be pedantic about EIP-1283 in Petersburg and Istanbul test specs
* ethcore/res: activate Istanbul on Rinkeby block 5435345
* ethcore/res: activate Istanbul on Kovan block 14111141
* ethcore/res: fix kovan istanbul number to 0xd751a5
* [json-spec] make blake2 pricing spec more readable (#11034)
* [json-spec] make blake2 pricing spec more readable
* [ethcore] fix compilation
* Manual backport of #11033
* add more tx tests (#11038)
* Fix parallel transactions race-condition (#10995)
* Add blake2_f precompile (#11017)
* [trace] introduce trace failed to Ext (#11019)
* Edit publish-onchain.sh to use https (#11016)
* Fix deadlock in network-devp2p (#11013)
* EIP 1108: Reduce alt_bn128 precompile gas costs (#11008)
* xDai chain support and nodes list update (#10989)
* EIP 2028: transaction gas lowered from 68 to 16 (#10987)
* EIP-1344 Add CHAINID op-code (#10983)
* manual publish jobs for releases, no changes for nightlies (#10977)
* [blooms-db] Fix benchmarks (#10974)
* Verify transaction against its block during import (#10954)
* Better error message for rpc gas price errors (#10931)
* tx-pool: accept local tx with higher gas price when pool full (#10901)
* Fix fork choice (#10837)
* Cleanup unused vm dependencies (#10787)
* Fix compilation on recent nightlies (#10991)
- Fix cargo audit (#10921)
- Add support for Energy Web Foundation's new chains (#10957)
- Kaspersky AV whitelisting (#10919)
- Avast whitelist script (#10900)
- Docker images renaming (#10863)
- Remove excessive warning (#10831)
- Allow --nat extip:your.host.here.org (#10830)
- When updating the client or when called from RPC, sleep should mean sleep (#10814)
- added new ropsten-bootnode and removed old one (#10794)
- ethkey no longer uses byteorder (#10786)
- Do not drop the peer with None difficulty (#10772)
- docs: Update Readme with TOC, Contributor Guideline. Update Cargo package descriptions (#10652)
* ethcore/res: activate atlantis classic hf on block 8772000 (#10766)
* fix docker tags for publishing (#10741)
* fix: aura don't add `SystemTime::now()` (#10720)
This commit does the following:
- Prevent overflow in `verify_timestamp()` by not adding `now` to found faulty timestamp
- Use explicit `CheckedSystemTime::checked_add` to prevent potential consensus issues because SystemTime is platform
depedent
- remove `#[cfg(not(time_checked_add))]` conditional compilation
* Update version
* Treat empty account the same as non-exist accounts in EIP-1052 (#10775)
* DevP2p: Get node IP address and udp port from Socket, if not included in PING packet (#10705)
* get node IP address and udp port from Socket, if not included in PING packet
* prevent bootnodes from being added to host nodes
* code corrections
* code corrections
* code corrections
* code corrections
* docs
* code corrections
* code corrections
* Apply suggestions from code review
Co-Authored-By: David <dvdplm@gmail.com>
* Add a way to signal shutdown to snapshotting threads (#10744)
* Add a way to signal shutdown to snapshotting threads
* Pass Progress to fat_rlps() so we can abort from there too.
* Checking for abort in a single spot
* Remove nightly-only weak/strong counts
* fix warning
* Fix tests
* Add dummy impl to abort snapshots
* Add another dummy impl for TestSnapshotService
* Remove debugging code
* Return error instead of the odd Ok(())
Switch to AtomicU64
* revert .as_bytes() change
* fix build
* fix build maybe
* version: bump beta to 2.5.2
* [CI] allow cargo audit to fail (#10676)
* [CI] allow cargo audit to fail
* [.gitlab-ci.yml] add a comment about cargo audit
* [Cargo.lock] cargo update -p protobuf
* Reset blockchain properly (#10669)
* delete BlockDetails from COL_EXTRA
* better proofs
* added tests
* PR suggestions
* new image (#10673)
* Update publishing (#10644)
* docker images are now built on k8s: test run
* copy check_sync.sh in build-linux job
* copy scripts/docker/hub/* in build-linux job
* removed cache var
* cleanup, no more nightly dockers
* cleanup in dockerfile
* some new tags
* removed sccsche debug log, cleanup
* no_gits, new artifacts dir, changed scripts. Test run.
* define version once
* one source for TRACK
* stop kovan onchain updates
* moved changes for two images to a new branch
* rename Dockerfile
* no need in libudev-dev
* enable lto for release builds (#10717)
* Use RUSTFLAGS to set the optimization level (#10719)
* Use RUSTFLAGS to set the optimization level
Cargo has a [quirk]() in how configuration settings are propagated when `cargo test` runs: local code respect the settings in `[profile.test]` but all dependencies use the `[profile.dev]` settings. Here we force `opt-level=3` for all dependencies.
* Remove unused profile settings
* Maybe like this?
* Turn off incremental compilation
* Remove colors; try again with overflow-checks on
* Use quiet CI machine
* Turn overflow checking back on
* Be explicit about what options we use
* Remove "quiet machine" override
* ethcore: enable ECIP-1054 for classic (#10731)
* config: enable atlantis on ethereum classic
* config: enable atlantis on morden classic
* config: enable atlantis on morden classic
* config: enable atlantis on kotti classic
* ethcore: move kotti fork block to 0xAEF49
* ethcore: move morden fork block to 0x4829BA
* ethcore: move classic fork block to 0x81B320
* remove trailing comma
* remove trailing comma
* fix chainspec
* ethcore: move classic fork block to 0x7fffffffffffffff
* version: bump beta to 2.5.1
* fix(whisper expiry): current time + work + ttl (#10587)
* update bootnodes (#10595)
* config: update goerli bootnodes
* config: update kotti bootnodes
* adds rpc error message for --no-ancient-blocks (#10608)
* adds error message for --no-ancient-blocks, closes#10261
* Apply suggestions from code review
Co-Authored-By: seunlanlege <seunlanlege@gmail.com>
* Constantinople HF on POA Core (#10606)
* Constantinople HF on POA Core
Plan Constantinople/St.Petersfork HF on POA Core network at block 8582254.
Original PR in POA repository: https://github.com/poanetwork/poa-chain-spec/pull/110
* Remove extra empty line
* evm: add some mulmod benches (#10600)
* evm: add blockhash_mulmod bench
* evm: use num-bigint for mod ops
* Clique: zero-fill extradata when the supplied value is less than 32 bytes in length (#10605)
* Update kovan.json to switch validator set to POA Consensus Contracts (#10628)
* Fix publish docs (#10635)
* Fix publish docs
* this never should be forced, either way compiling previous versions will produce outdated docs
* fix array, var was moved to the group project global variables list
* Fix rinkeby petersburg fork (#10632)
* Update to vanilla tx pool error
* Prevent a non ready tx replacing a ready tx
* Make tests compile
* Test ready tx not replaced by future tx
* Transaction indirection
* Use StateReadiness to calculate Ready in `should_replace`
* Test existing txs from same sender are used to compute Readiness
* private-tx: Wire up ShouldReplace
* Revert "Use StateReadiness to calculate Ready in `should_replace`"
This reverts commit af9e69c8
* Make replace generic so it works with private-tx
* Rename Replace and add missing docs
* ShouldReplace no longer mutable
* tx-pool: update to transaction-pool 2.0 from crates.io
* tx-pool: generic error type alias
* Exit early for first unmatching nonce
* Fix private-tx test, use existing write lock
* Use read lock for pool scoring
* Tx permission contract improvement
* Take in account zero gas price certification when doing transact_contract
* DRY in ServiceTransactionChecker
* Fix typos and regroup mod
* Introduce CertifiedAddressesCache
* Introduce refresh_cache for CertifiedAddressesCache
* Add CertifiedAddressesCache read and write on checking
* Refresh CertifiedAddressesCache on new imported block
* Separate ChainInfo trait and fix errors after merge
* Do not fire an error when service txes contract does not exist
* WIP: Shared certified addresses cache between miner and client + use HashMap instead of BTreeMap
* Refactor refresh_cache for ServiceTransactionChecker
* Refresh cache fixes
* Add cache read in check_address + log when cache is used + improve code
* Remove ChainInfo from ServiceTransaction dependencies
* DRY ServiceTransactionChecker
* Fix Client and Miner in tests
* Fix node_filter test
* Fix Client::new in add_peer_with_private_config
* WIP: Separated ChainNotify from ethcore trait and implemented ChainNotify for ServiceTransactionChecker
* Fix watcher test
* Revert "Merge branch 'master' into master"
This reverts commit 4e7371dc109d022efe3087defc33d827998ce648, reversing
changes made to bffd73e5fd58a516bbf404281b51cf26422e181e.
* Revert "Fix watcher test"
This reverts commit bffd73e5fd58a516bbf404281b51cf26422e181e.
* Revert "WIP: Separated ChainNotify from ethcore trait and implemented ChainNotify for ServiceTransactionChecker"
This reverts commit 6e73d1e61fa15dc10ffd4fab63df29eabe9c3b3a.
* Revert "Fix Client::new in add_peer_with_private_config"
This reverts commit ec610a30bee95588d58b79edcc9e43c2ff90f1ad.
* Revert "Fix node_filter test"
This reverts commit 06a4b2de86317c902f579e912b40de0b0fbf6d78.
* Revert "Fix Client and Miner in tests"
This reverts commit 51bbad330ea6e7bdfc1516208cc8705d5d11516d.
* Implement ServiceTransactionChecker in miner and delegate it to client + revert unnecessary changes
* Merge master
* Code improvements
* Merge branch 'master' of https://github.com/paritytech/parity-ethereum
# Conflicts:
# Cargo.lock
# ethcore/private-tx/src/lib.rs
# ethcore/src/miner/miner.rs
# ethcore/src/miner/pool_client.rs
* build android with cache!
* windows fixes
* windows fixes 2
* windows fixes 3
* windows fixes 4
* windows should have sccache variables in env variables
* Initial support sccache for win build
* show sccache stats
* cache paths for shared runners
* sccache status is in the script.
* removed windows test for now
* ethcore: add clique engine (#9981)
* fix broken sync
* correct seal fields
* ethcore: fix comment
* parity: remove duplicate params
* clique: fix whitespaces
* ethcore: fix goerli chain spec
* refactor signer_snapshot into pending/finalized state
* move close_block_extra_data after seal is applied
* refactor most of the logic into the signer_snapshot
* clique: refactor locking logic out of the consensus engine interface
* Fix jsonspec and add an unittest
* Replace space with tabs
* Unbroke sync
* Fix broken sync
* 1/2 state tracking without votes
* 2/2 implement vote tracking
* ci: use travis for goerli
* ci: setup a clique network
* ci: sync a görli node
* add clique deploy script
* ci: fix paths in clique deploy script
* ci: use docker compose
* ci: fix travis job names
* ci: fix build deps
* ci: massively reduce tests
* Revert "ci: massively reduce tests"
This reverts commit 6369f0b069ed2607a7e9f2e1d85489bacdc43384.
* ci: run cargo test directly
* ci: separate build and test stages
* ci: cache rust installation
* ci: simplify ci stages
* ci: make clique deploy script executable
* ci: shutdown goerli sync after 20min
* ci: remove slow sync stage
* ci: use timeout to finish jobs
* ci: fix build path
* ci: use absolute paths to end this confusion
* ci: add geth and parity to path
* ci: be more verbose
* ci: allow for more relaxed caching timeout
* ci: update repositories for custom ppa
* ci: fix typo in file name
* ci: fix docker compose file
* ci: add ethkey to docker
* ci: make sure deploy script is up to date with upstream
* ci: stop docker container after certain time
* ci: force superuser to update permissions on docker files
* ci: reduce run time of script to ~30 min
* ci: remove duplicate caching in travis
* remove trace statements
* clique: add more validation involving the recent signer list
* ethcore: enable constantinople for rinkeby
* ethcore: fix whitespaces in rinkeby spec
* ethcore: reformat goerli.json
* Revert "ci: remove duplicate caching in travis"
This reverts commit a562838d3d194d37f9871dcbe00b783637978f89.
* tmp commit
* another tmp commit
* it builds!
* add sealing capabilities
* add seal_header hook to allow separation of block seal/importing code paths
* clique: remove populate_from_parent.
* add panic
* make turn delay random
* initialize OpenBlock properly in 'enact'
* misc: remove duplicate lines
* misc: fix license headers
* misc: convert spaces to tabs
* misc: fix tabs
* Update Cargo.toml
* Update Cargo.toml
* Update Cargo.toml
* clique: ensure validator restores state before trying to seal
* clique: make 'state' return an Error. Make some error messages more clear
* Fix compile error after rebase & toolchain upgrade
* fix a bunch of import warnings
* Refactor code
* Fix permissions
* Refactoring syncing
* Implement full validator checks
* Refactor util functions to seperate file
* mining 1
* ethcore: add chainspec for kotti
* ethcore: rename pre-goerli configs
* ethcore: load kotti chain spec
* cli: add kotti to params
* Implement working local sealing
* making sealing & syncing work together
* Relax timestamp checking
* ethcore: prepare for the real goerli to launch
* Implement NOTURN wiggle properly & cleanupnup warnings
* Implement vote casting
* Update docs & skip signing if no signer
* Optimize step-service interval
* Record state on local sealed block
* Fix script filemode
* Cleaning up codebase
* restore enact trace logging
* Delete clique.sh and move sync.sh
* remove travis.yml
* Remove dead code
* Cleanup compile warning
* address review comments
* adding more comments and removing unwrap()
* ci: remove sync script
* Address review comments
* fix compile error
* adding better debugging for timing
* Implement an dedicated thread for sealing timing
* fix(add helper for timestamp overflows) (#10330)
* fix(add helper timestamp overflows)
* fix(simplify code)
* fix(make helper private)
* snap: official image / test (#10168)
* official image / test
* fix / test
* bit more necromancy
* fix paths
* add source bin/df /test
* add source bin/df /test2
* something w paths /test
* something w paths /test
* add source-type /test
* show paths /test
* copy plugin /test
* plugin -> nil
* install rhash
* no questions while installing rhash
* publish snap only for release
* fix(docker): fix not receives SIGINT (#10059)
* fix(docker): fix not receives SIGINT
* fix: update with reviews
* update with review
* update
* update
* Don't add discovery initiators to the node table (#10305)
* Don't add discovery initiators to the node table
* Use enums for tracking state of the nodes in discovery
* Dont try to ping ourselves
* Fix minor nits
* Update timeouts when observing an outdated node
* Extracted update_bucket_record from update_node
* Fixed typo
* Fix two final nits from @todr
* change docker image based on debian instead of ubuntu due to the chan… (#10336)
* change docker image based on debian instead of ubuntu due to the changes of the build container
* role back docker build image and docker deploy image to ubuntu:xenial based (#10338)
* Bundle protocol and packet_id together in chain sync (#10315)
Define a new `enum` where devp2p subprotocol packet ids (currently eth and par) are defined. Additionally provide functionality to query id value and protocol of a given id object.
* snap: prefix version and populate candidate channel (#10343)
* snap: populate candidate releases with beta snaps to avoid stale channel
* snap: prefix version with v*
* addressing review comments
* engine: fix copyright header
* scripts: restore permissions on sign command
* ethcore: enforce tabs
* ethcore: enforce tabs
* ethcore: enforce tabs
* addressing comments
* addressing comments
* addressing more comments
* addressing more comments
* addressing more comments
* addressing more comments
* addressing more comments
* json-spec: fix clique epoch to non-zero u64
* ci: enable travis for parity goerli
* ci: don't separate build and test step
* ci: don't run c++ tests on travis
* ci: simplify cargo test to squeeze into travis timeout
* ci: don't run tests on travis at all
* style(fixes)
* fix(add tests)
* fix(recent_signer bug)
* fix(complete all tests)
* fix(nits)
* fix(simplify asserts)
* fix(cliqueState): simplify code
* fix(nits)
* docs(comments what's need to fixed)
* fix(revert unintended changes)
* fix(tests)
* fix(logs): voting logs
* fix(readability + more logs)
* fix(sync)
* docs(add missing licens header)
* fix(log): info! -> trace!
* docs(fix nits) + fix(remove assert)
* perf(use counter instead of vec)
* fix(remove needless block in match)
* fix(faulty comment)
* grumbles(docs for tests)
* fix(nits)
* fix(revert_vote): only remove vote when votes == 0
* fix(vote counter): checked arithmetics
* fix(simplify tests)
* fix(nits)
* fix(clique): err types
* fix(clique utils): make use of errors
* fix(cleanup nits)
* fix(clique sealing): don't read state no signer
* fix(replace Vec<Signers> with BTreeSet<Signers>)
* fix(tests): BTreeSet and more generic helpers
* fix(nits)
* fix(ethcore_block_seal): remove needless `Box`
* fix(faulty log): info -> trace
* fix(checked SystemTime): prevent SystemTime panics
* style(chain cfg): space after `:`
* style(fn enact): fix whitespace
* docs(clique): StepService
* docs(nit): fix faulty comment
* docs(fix typo)
* style(fix bad indentation)
* fix(bad regex match)
* grumble(on_seal_block): make `&mut` to avoid clone
* docs(on_seal_block): fix faulty documentation
* Delete .travis.yml
* docs: remove eth hf references in spec
* Update client.rs
* fix(nits)
* fix(clique step): `RwLock` -> `AtomicBool`
* fix(clique): use `Duration::as_millis`
* Clean up some Clique documentation
* Add trace information to eth_estimateGas (#10519)
* Add trace information to eth_estimateGas
* replace unwrap better version
* change vm::Error formatter to more user-friendly
* remove extra error format
* use map_or instead sequence of map/unwrap_or
* fix(light/on_demand): extract as a trait
* fix(grumble): OnDemand remove needless trait bound
* Update to vanilla tx pool error
* private-tx: remove error-chain, implement Error, derive Display
* private-tx: replace ErrorKind and bail!
* private-tx: add missing From impls and other compiler errors
* private-tx: use original tx-pool error
* Don't be silly cargo
* Add trace information to eth_estimateGas
* replace unwrap better version
* change vm::Error formatter to more user-friendly
* remove extra error format
* use map_or instead sequence of map/unwrap_or
* fix(rpc): fix a bunch of clippy lints
* fix(rpc clippy): remove unused ignored lints
* fix(clippy): fix all redundant_field_names
This commit fixes all uses of `redundant_field_names` and removes the ignored lint `redundant_field_names`
* fix(brain unwrap): replace with expect
* whisper/cli: add p2p port and ip parameters
This is so that those params don't change randomly and are in sync with the URL that
is displayed.
* feedback: Result instead of panic
Co-Authored-By: gballet <gballet@gmail.com>
* feedback: Map error in port conversion
Co-Authored-By: gballet <gballet@gmail.com>
* whisper/cli: User can specify enode private key
So that the enode doesn't change at every run.
* whipser/cli: finish integrating review feedback.
* Accomodate error API change
* Update rustc-hex version in whisper/cli/Cargo.toml
Co-Authored-By: gballet <gballet@gmail.com>
* Update README with new whisper cli options
* Fix typo in error message
Co-Authored-By: gballet <gballet@gmail.com>
* Fix Cargo.lock and build issue after lib version upgrade
* Fix another typo
Co-Authored-By: gballet <gballet@gmail.com>
* fix(extract `timestamp_checked_add` as lib)
* fix(whisper types): remove unused `EmptyTopics`
* fix(time-lib): feature-flag to use time-lib or std
This commit adds conditional compilation checks that falls back to `our time-lib` when
`time_checked_add` is not available in the standard library
Note, `time_checked_add` covers both `checked_add` and `checked_sub`
* fix(grumble): use cfg_attr to define rustc feature
* _old codebase_ before docker update
* before docker update, testing runnr
* docker update, testing the caching
* distributed job cargo homes
* distributed job cargo homes 2
* distributed job cargo homes 3
* dockerfile with gitlab checkout, audit uses template
* dockerfile gets repo in volume
* change builds_dir
* trying docker cache for repo
* repo cached automatically
* after script is not concatenated
* check sccache non-cacheable reasons nature
* watch cache
* log sccache
* log sccache 2
* debug log sccache
* fix debug log sccache
* fix debug log sccache 2
* debug log cache 3
* debug log cache 3
* trace log all sccache
* test wo cargo cache
* test w removed cargo cache
* report non-cacheable reasons, cargo cache is back and empty
* report non-cacheable reasons, cargo cache is back and empty 2
* report non-cacheable reasons, cargo cache is back and empty 3
* wrap into after_script
* restore CI tags
`qa` -> `linux-docker`
* return to main runners, this will fail until config on runners And Dockerfile won't be updated
* typo fix CI lint
* return to docker tag
* tests splitted, phase 1
* typo
* fix wrong launch commands
* typos
* rearrangements
* use `nproc` function for threads
* use nproc for threads
* let theads be auto, build-andriod no more in regular run
* split val chain and cargo check
* renamed some files
* wrong phase
* check rust files before test jobs
* lint error
* rust files modivied var
* test except changes
* add rust_changes except
* lint error
* fixes
* .gitlab-ci.yml can't be excluded
* pipeline shouldn't start
* pipeline must go
* pipeline must go 2
* pipeline must go 3
* pipeline must go 4
* pipeline must go 5
* pipeline must go 6
* pipeline must go 7
* pipeline must not go 1
* pipeline must go 8
* avoid skippng tests yet, reintroducing them after the caching
* test theory
* parallelized cargo check with combusting helicopters
* less uploads
* alias for cargo checks
* nice template
* Updating the CI system with the publication of releases and binary files on github
Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>
* move publish aws from gitlab.yml to gitlab scripts
Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>
* gitlab.yml cleaning
move publish AWS to gitlab scripts
remove dependencies from android build
Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>
* Revert "Updating the CI system with the publication of releases and binary files on github"
This reverts commit da87e06f2e4751dbca08a898b52926aef5ad0aba.
* remove no-git for aws
* microfix
* no need in no_git then
* snap: reenable i386, arm64, armhf architecture publishing
* gitlab: fix indent
* gitlab: fix yml syntax
* Linker for crosscomile
* fix target to linker
* new docker image
* fix lint, add build to this PR
* calc SHA3 using rhash
* add new images for i386, armhf
* show snap target & artifacts
* set CARGO_TARGET for publish snap
* move detect Version to publish snap
* rm libc6 dep from snap-template up pub-snap script
* clean up cargo config before add linker
* move linker config to docker images
* ethash: initial implementation of progpow
* progpow: use wrapping arithmetic
* progpow: cleanup comments
* progpow: fix keccak_f800
* progpow: reorder definitions
* progpow: general fixing
* progpow: add basic tests from geth
* progpow: generate c_dag and add test
* progpow: fix progpow_init and progpow_loop
* progpow: fix and add new test
* progpow: tabify
* progpow: add shared testvectors from geth and aleth
* progpow: add benchmarks
* progpow: don't read bytes from dag
* ethash: use criterion for progpow benchmarks
* progpow: dont borrow hash on fnv1a_hash
* progpow: don't borrow operand on progpow merge
* progpow: hardcode dag lookup function
we only support light verification anyway
* progpow: read double words directly from the dag
* progpow: inline some small functions
* progpow: remove some bounds checking from the main loop
* progpow: remove unreachable match cases
* progpow: remove bounds check in keccak_f800_round
* progpow: fix ptr::swap
* progpow: force loop unroll in keccak_f800_round
* progpow: remove unnecessary branching in progpow_loop
* progpow: force loop unroll in fill_mix
* progpow: silence unused warning
* progpow: dont run last keccak_f800_round out of the loop
rustc generates the same assembly, it unrolls the loop
* progpow: fix output of keccak_f800_short
* ethcore: support progpow in ethash engine
* ethash: fix typo
* ethcore, ethash: fix tests
* json: fix ethash spec tests
* ethash: update quick_get_difficulty for progpow
* ethash: drop light cache on progpow transition block
* ethash: fix quick_get_difficulty tests
* progpow: update to spec v0.9.0
* progpow: update to spec v0.9.1
* progpow: update to spec v0.9.2
* ethash: rename progpow benchmarks
* fix Cargo.lock bad merge
* ethash: only export modules for benchmarks
* ethash: progpow: remove unsafe unchecked indexing
* ethash: create enum for pow algorithm
* ethash: box the progpow cdag
* ethash: skip slow progpow test vectors on ci
* ethash: don't skip progpow test vectors
they don't take too long when running in release mode which is the case
for CI.
* ethash: progpow: update copyright date
Co-Authored-By: andresilva <andre.beat@gmail.com>
* ethcore: remove verification of ci-skip-tests on non-test builds
Define a new `enum` where devp2p subprotocol packet ids (currently eth and par) are defined. Additionally provide functionality to query id value and protocol of a given id object.
* Don't add discovery initiators to the node table
* Use enums for tracking state of the nodes in discovery
* Dont try to ping ourselves
* Fix minor nits
* Update timeouts when observing an outdated node
* Extracted update_bucket_record from update_node
* Fixed typo
* Fix two final nits from @todr
* Add function to update minimum gas price
* Update TestMinerService to handle min_gas_price changes
* Place minimum gas price test behind feature flag
* Update check for fixed gas pricer to be more explicit
* Use errors::unsupported instead of errors::request_rejected
* Add test that fails to set minimum gas price
* Fix test that should fail when setting new gas price
* Put dev dependencies behind feature flag
* Fix deadlock in set_minimal_gas_price()
* Update RPC tests with mocked error response
* Remove unnecessary cfg flag
* Remove duplicate crate imports
* fix(remove needless unsafe blocks)
* style(nits)
* fix(parity-clib): eliminate repetitive event loops
* revert(java bindings): safe rust -> unsafe rust
These functions can still end up with `UB` thus should be unsafe
* fix(grumbles): make Callback trait `pub (crate)`
* fix(light-rpc): Make `light_sync` generic
The motivation behind this change is to easily mock `light-sync` to make it possible to enable `rpc-integration` tests
for the light-client.
Currently the `rpc's` requires the concrete type `sync::LightSync` which makes it very hard to do so
* fix(bad merge)
* Make the specification of the protocol to which a packet_id belongs to
explicit when calling "SyncRequester::send_packet".
* Remove "SyncIO::send" and leave only "SyncIO::send_protocol"
* Adapt tests to new code.
* Strengthen tests to check if packet_id and protocol match when sending
a devp2p packet.
* CI optimizations
* fix stripping
* new dockerfile
* no need n submodule upd
* review
* moved dockerfile
* it becomes large
* onchain update depends on s3
* fix dependency
* fix cache status
* fix cache status
* new cache status
* Increase the number of block bodies requested during Sync.
* Increase the number of block bodies requested during Sync.
* Check if our peer is an older parity client with the bug
of not handling large requests properly
* Add a ClientVersion struct and a ClientCapabilites trait
* Make ClientVersion its own module
* Refactor and extend use of ClientVersion
* Replace strings with ClientVersion in PeerInfo
* Group further functionality in ClientCapabilities
* Move parity client version data from tuple to its own struct.
* Implement accessor methods for ParityClientData and remove them
from ClientVersion.
* Minor fixes
* Make functions specific to parity return types specific to parity.
* Test for shorter ID strings
* Fix formatting and remove unneeded dependencies.
* Roll back Cargo.lock
* Commit last Cargo.lock
* Convert from string to ClientVersion
* * When checking if peer accepts service transactions just check
if it's parity, remove version check.
* Remove dependency on semver in ethcore-sync
* Remove unnecessary String instantiation
* Rename peer_info to peer_version
* Update RPC test helpers
* Simplify From<String>
* Parse static version string only once
* Update RPC tests to new ClientVersion struct
* Document public members
* More robust parsing of ID string
* Minor changes.
* Update version in which large block bodies requests appear.
* Update ethcore/sync/src/block_sync.rs
Co-Authored-By: elferdo <elferdo@gmail.com>
* Update util/network/src/client_version.rs
Co-Authored-By: elferdo <elferdo@gmail.com>
* Update util/network/src/client_version.rs
Co-Authored-By: elferdo <elferdo@gmail.com>
* Update tests.
* Minor fixes.
* Extract accounts from ethcore.
* Fix ethcore.
* Get rid of AccountProvider in test_helpers
* Fix rest of the code.
* Re-use EngineSigner, fix tests.
* Simplify EngineSigner to always have an Address.
* Fix RPC tests.
* Add deprecation notice to RPCs.
* Feature to disable accounts.
* extract accounts in RPC
* Run with accounts in tests.
* Fix RPC compilation and tests.
* Fix compilation of the binary.
* Fix compilation of the binary.
* Fix compilation with accounts enabled.
* Fix tests.
* Update submodule.
* Remove android.
* Use derive for Default
* Don't build secretstore by default.
* Add link to issue.
* Refresh Cargo.lock.
* Fix miner tests.
* Update rpc/Cargo.toml
Co-Authored-By: tomusdrw <tomusdrw@users.noreply.github.com>
* Fix private tests.
* Make check_epoch_end_signal to only use immutable data
* Move check_epoch_end_signals out of commit_block
* Make check_epoch_end_signals possible to fail
* Actually return the error from check_epoch_end_signals
* Remove a clone
* Fix import error
* Add missing step for Using `systemd` service file
Copy Parity release from target folder to bin, write `cp -R ./target/release/parity /usr/bin/` to match `ExecStart=/usr/bin/parity --config /etc/parity/config.toml` from `https://github.com/paritytech/parity-ethereum/blob/master/scripts/parity.service`
* Copy release to bin folder using sudo install
`sudo install ./target/release/parity /usr/bin/parity`
* Patch available private contracts during private transaction
* Key acl ABI added
* Work with secret store keys moved to the separate struct
* Private tx test refactored
* Revert "Private tx test refactored"
This reverts commit 476c132d692c7a886bc7b7cd7fe47b3d7692bd63.
* Test for calling private contract from another one added
* Test fixed
* Redundant tab removed
* ACL contract processing fixed, test added
* Merge with head
* Expect replaced with closure
* Use jsonrpc crates on local path
* Convert all RPC traits to use jsonrpc-derive
* Use local jsonrpc at top level
* Upgrade remaining jsonrpc dependencies
* Checkout Cargo.lock to master HEAD
* Use jsonrpc-* 10.0.1 from crates.io
* Attribute after docs
* prevent silent errors in daemon mode
* change author in Cargo.toml, add preamble to pipe.rs
* set the uid and gid on daemon process, fix permission errors when writing to pid file
* call setup_logger before daemonize to prevent crashing when attempting to create logfile
* map_err for calls to splice and ioctl, fix spaces in Cargo.toml
* split out daemonize to own repo
* removed util/daemonize
* renamed dep to parity-daemonize
* fix(parity-clib): enable `logger`
* bump parity-daemonize
* remove obsolete comment
Co-Authored-By: seunlanlege <seunlanlege@gmail.com>
* fix(grumbles): docs and log in ParityParams
* Add FIXME comment regarding @tomaka grumbles
* Unify logger with the C-API in ParityParams (less type-safety with more from_raw() conversions)
* Add better documentation in the `parity.h`
* Apply suggestions from code review
Co-Authored-By: seunlanlege <seunlanlege@gmail.com>
* docs(parity lib): add link to logging issue
* fix(parity-clib): JNI enable `logger`
* fix(parity-clib): update `Java example`
* Update example to the API changes
* Remove needless printouts which can be controlled via logger instead
* Switch to non prefixed malloc_size_of on macos
* Fix
* Testing darwin build
* Fix import
* conflict
* switch heapsize deps commit
* switch heapsize commit
* Rename branch
* Restore gitlab ci to origin
* test for mac
* mac tests?
* Switch of macos CI tests.
* Allow specifying local accounts via CLI
* Add `tx-queue-locals` CLI option
* ethcore: modify miner to check options vec before importing transaction
* modify tests (ethcore/parity)
Resolves#9634
* fix formatting
* fixes: Make prefer HashSet over Vec<>, add test, comment formatting
* Update ethcore/src/miner/miner.rs
Co-Authored-By: insipx <aplaza@liquidthink.net>
* Fix comments and add helper for set->vec conversion
* remove blank line from use statement
* fix helper test
* formatting
* fix test to pass on nightly
* revert test fix for nightly
* Tx permission contract improvement
* Take in account zero gas price certification when doing transact_contract
* DRY in ServiceTransactionChecker
* Fix typos and regroup mod
* Fix imports
* Simplify code in struct instantiation
Co-Authored-By: VladLupashevskyi <vlad@lupashevskyi.com>
* fix(ManageNetwork): replace Range -> RangeIncls
Fixes `TODO: Range should be changed to RangeInclusive once stable (https://github.com/rust-lang/rust/pull/50758)`
* fix(tests)
* fix(grumbles): off-by-one error in debug_asserts
* RangeInclusive::end() is inclusive which means that if start and end is equal the `debug_assert(range.end() >
range.start()` will fail which is shouldn't
* Remove re-export of `CallContract` and `RegistryInfo` from `ethcore/client`
* Remove CallContract and RegistryInfo re-exports again
This was missed while fixing merge conflicts
* docs: move 2.2 changelog to docs/
* docs: mark parity 2.1 end of life
* docs: add changelog for 2.1.11
* docs: add changelog for 2.2.6
* docs: add changelog for 2.2.7
* docs: add changelog for 2.3.0
* docs: add release notes for 2.3.0
* added BlockChainReset trait, client impl, and cli interface
* show block hashes to be deleted and new best block, update best block in db, better cli interface
* delete BlockNumber from COL_EXTRA
* add TODO comment
* add BlockReciepts to imports
* refactor block_headers_from_best_block, better cli documentation
* exit gracefully if reset arg isn't supplied
* fix cli usage macro
* removed stray int literals
* use Vec::with_capacity
Co-Authored-By: seunlanlege <seunlanlege@gmail.com>
* cast n to usize
* correct imports
* make db reset arg required
* Add is_base_storage_root_unchanged
* Fix compile, use a shortcut for check, and remove ignored tests
* Add a warn!
* Update ethereum/tests to v6.0.0-beta.2
* grumble: use {:#x} instead of 0x{:x}
Co-Authored-By: sorpaas <accounts@that.world>
* align with docs
> If permanent unlocking is disabled (the default) then the duration argument will be ignored, and the account will be unlocked for a single signing.
Current behaviour throws an error that is no longer relevant.
* fix test
* Change back to throwing error
* Fix test again
* formatting
* oops
* whitespace fixes
currently trace_filter can't return failed contract creation transaction
but trace_block can query the failed contract creation transaction.it
because the logic of parity-ethereum/ethcore/src/trace/types/filter.rs
Line 109 in 9982eba
```
_ => false
```
this patch correct the logic:
```
_ => self.to_address.matches_all()
```
Signed-off-by: Deshi Xiao <xiaods@gmail.com>
* Fix off-by-one error on `leading_zeros` which was used to index in the hash to get leading zeros when not aligned on byte boundary (i.e, all the bits in a byte was not zero such as 0001 1111)
* Fix overflow by shifting with bigger value than 63
* Make sure parent block is not in importing queue when importing ancient blocks
* Clear queue when an ancient import fails
* Lock only once in clear
* Add comments why queued check is needed
* Should push the value back to the queue
* Directly check in chain.read()
* Remove extra empty line
* Revert unused verification change
* Replace ethcore-logger with env-logger.
* Fix logger initialization in WASM tests.
* uncomment logger initialization in secret store
* Don't use ethcore-logger in whisper.
* Move ethcore-logger within parity dir.
* Uncomment rest from secret-store.
* Use `let _ =` in private_contract for consistency
* `ok()` to `let _ =` fix in service
* Use `let _ = ` for state_db
* publish docs changes for autogen config docs
* Update publish-docs.sh
adding an environment variable so js knows not to download git master and just grab the local repo
* Update publish-docs.sh
made some changes making this unnecessary
* fix env variable
env variable passes to node properly now
* use yarn
* test pipeline, revert me
* fix test pipeline, revert me
* change runner tag
* change runner tag 2
* change runner tag
* global git config
* supress upload_files output
* Update .gitlab-ci.yml
reverting testing changes
* Replace tag if exists
Very unlikely to be important/useful
* Add private tx enabled flag into status packet
* Error log added for the case with no peers available
* Add flag only for supported protocol versions
* Work with private handler refactored
* Log target changed
* Cargo.lock updated
* ethcore: update hardcoded headers for foundation
* ethcore: update hardcoded headers for ropsten
* ethcore: update hardcoded headers for kovan
* ethcore: use consistant formatting
* ethcore: restore spaces after colon in chain spec
* ethcore: fix bootnodes in chain specs
* ethcore: fix bootnodes in chain specs
* ethcore: enforce newline at the end of chainspecs
* fix#10125
fix service transaction version detection if --identity is enabled, change test to match how --identity actually works
* fix wrong var
* get the index of v, not /
* idx, not idx.len()
* Update ethcore/sync/src/chain/propagator.rs
Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com>
* Update ethcore/sync/src/chain/propagator.rs
Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com>
* change version prefix to a const
* space
Co-Authored-By: joshua-mir <43032097+joshua-mir@users.noreply.github.com>
* support for keystore format produced by pyethereum lib + some debug msgs
* made salt unbound also for Scrypt
* made address optional and skip if its none
* ignore values of any type, not just i32
* WIP: local deps
* cleanup
* enable optional address + more cleanup
* yet another cleanup
* enable keystore wo address import (using passwd)
* cleanup
* doc enchancement
* parity/account fix
* redesign after review
* fix indentation
* ignore just version in json under crypto
* remove unnecessary borrowing within match str
Co-Authored-By: tworec <tworec@golem.network>
* remove another unnecessary borrowing
Co-Authored-By: tworec <tworec@golem.network>
* default derived instead of implementing
* log dependency removed
* [ethstore] warn restored + env_logger initialized in CLI
* applied suggestion from @tomusdrw
* feat(parity-clib asynchronous rpc queries)
* feat(seperate bindings for ws and rpc)
* Subscribing to websockets for the full-client works
* feat(c binding unsubscribe_from_websocket)
* fix(tests): tweak CMake build config
* Enforce C+11
* refactor(parity-cpp-example) : `cpp:ify`
* fix(typedefs) : revert typedefs parity-clib
* docs(nits)
* fix(simplify websocket_unsubscribe)
* refactor(cpp example) : more subscriptions
* fix(callback type) : address grumbles on callback
* Use it the example to avoid using global variables
* docs(nits) - don't mention `arc`
* fix(jni bindings): fix compile errors
* feat(java example and updated java bindings)
* fix(java example) : run both full and light client
* fix(Java shutdown) : unsubscribe to sessions
Forgot to pass the JNIEnv environment since it is an instance method
* feat(return valid JString)
* Remove Java dependency by constructing a valid Java String in the callback
* fix(logger) : remove `rpc` trace log
* fix(format)
* fix(parity-clib): remove needless callback `type`
* fix(parity-clib-examples) : update examples
* `cpp` example pass in a struct instead to determines `callback kind`
* `java` add a instance variable the class `Callback` to determine `callback kind`
* fix(review comments): docs and format
* Update parity-clib/src/java.rs
Co-Authored-By: niklasad1 <niklasadolfsson1@gmail.com>
* fix(bad merge + spelling)
* fix(move examples to parity-clib/examples)
* refactor(hardware-wallet) - use only one thread
This changes parity to use one thread instead of two to subscribe USB
events via the hardware-wallets.
* Fix logs and tests
* fix(grumbles) : formatting and spelling nits
* Update hw/src/lib.rs
Co-Authored-By: niklasad1 <niklasadolfsson1@gmail.com>
* Update hw/src/lib.rs
Co-Authored-By: niklasad1 <niklasadolfsson1@gmail.com>
* Update hw/src/ledger.rs
Co-Authored-By: niklasad1 <niklasadolfsson1@gmail.com>
* fix(grumbles): clarify docs and use constants
* Clarify bad explaination of `run-to-completion`
* Replace magic numbers with constants
Fix: new blocks notifications sometimes missing in pubsub RPC
Implement new struct to pass to `new_blocks()` with extra parameter - `has_more_blocks_to_import`, which was previously used to determine whether the notification should be sent. Now it's up to each implementation to decide what to do.
Updated all implementations to behave as before, except `eth_pubsub`, which will send notification even when the queue is not empty.
Update tests.
* Fill transaction hash on ethGetLog of light client. This is enifficient
but we keep align with spec.
* Using better variables names.
* Expose old fast light get log as `parity_getLogsLight`.
* Update rpc/src/v1/helpers/light_fetch.rs
Fix indent.
Co-Authored-By: cheme <emericchevalier.pro@gmail.com>
* Factor common code between light_logs and logs.
* Remove useless check
* Rename parity light logs to 'parity_getLogsNoTransactionHash'.
Fix indent and extra white lines.
* Use vec instead of tree map to avoid inner function.
* better loop
- Refactor (and rename crate) and implement RwLock len cache.
- improve docs
- update ethcore verification queue to new version
- Implement Default, From, also derive Debug
- update: parking_lot to 0.7
* ethcore: change blockreward to 2e18 for foundation after constantinople
* ethcore: delay diff bomb by 2e6 blocks for foundation after constantinople
* ethcore: enable eip-{145,1014,1052,1283} for foundation after constantinople
If system uptime is less than the duration in the test, thread
will panic due to: 'overflow when subtracting duration from instant'.
Changed duration to 20 seconds to make it unlikely the test will
fail due to this condition.
Since no operations that carry a similar risk of panic occur outside
of the tests, it doesn't seem warranted to depend on an external crate
to fix this.
New util LenCachingMutex can be used in place of a Mutex, when working
with collections, or other types with a len() method. When
the Guard is dropped, the value returned from len() is stored
into an AtomicUsize and can be queried using load_len() without
needing to lock the Mutex. Implementations for ```Vec``` and
```VecDeque```.
Now used in [Verification](4ded4181a6/ethcore/src/verification/queue/mod.rs (L196)) so that calls to ```VerificationQueue.queue_info()```
no longer require locks.
* Version and notification for private contract wrapper added
* Error handling improved
* Style for comments in file fixed
* TODO issue added into comments
* closes#7009
adds parity_verifySignature RPC method
* removed unneccesary into
* adds support for chain replay protected signatures
* corrected chain replay protection check
* corrected possible overflow
* added tests
* use checked_sub to prevent possible overflow
* use saturating_mul to prevent possible overflow
* changed method signature to accept r,s,v components
* added unit tests
* more tests
* refactored tests for better readability
moved verify_signature tests to live in the same file.
* removed unneccesary imports
* fixed PR grumbles
* fixed rsv notation
* fixed rsv notation
* renamed BasicAcount to RecoveredAccount, Support zero chain_id
* fixed compile errors
* fixed tests
* doc comment
* Add deny_unknown_fields to chainspec
* Add tests and fix existing one
* Remove serde_ignored dependency for chainspec
* Fix rpc test eth chain spec
* Fix starting_nonce_test spec
* Add `is_idle` to LightSync to check importing status
* Use SyncStateWrapper to make sure is_idle gets updates
* Update is_major_import to use verified queue size as well
* Add comment for `is_idle`
* Add Debug to `SyncStateWrapper`
* `fn get` -> `fn into_inner`
* Add a dump of the state at the end of transaction for --json-test.
Also fixes json-test output on finish, and allow to put both on err or
out (--out-only and --err-only).
* Dump state resolution from trie, function behind evm-bin feature to avoid misuse.
* Rename 'slow' method to 'to_pod_full'.
Use cache first in 'to_pod_full', for in between commits case.
Change dump activation to use a function pointer instead.
* Fix tests.
* Query and add storage values to dump.
* Switch to use `require` method, even if less efficient it is better in
this case to reuse existing code.
Reuse of `storage_at` was not easy in this case (could not iterate and
use the method at the same time (refcell mutable borrow panics) so
keeping code as is.
* Switch to returning error.
Use 'base_storage_root' instead of 'storage_root'.
Added a test, it will only execute with json-test in ci, or when launch
with the feature.
* Renaming of command line parameters.
Comments fixes.
Minor code changes.
* Fix evmbin cmd parsing test.
* README update.
* Fix extra space and avoid clone call on copiable address.
* Revert test submodule.
* Revert wasm-test submodule.
* Use map_or instead of map + unwrap_or
* restore tests submodule
* Remove the independent runtimes from `KeyServerHttpListener` and
`KeyServerCore` and instead require a `parity_runtime::Executor`
to be passed upon creation of each.
* Remove the `threads` parameter from both `ClusterConfiguration` structs.
* Implement the `future::Executor` trait for `parity_runtime::Executor`.
* Update tests.
- Update the `loop_until` function to instead use a oneshot to signal
completion.
- Modify the `make_key_servers` function to create and return a runtime.
* PIP Table Cost relative to average peers instead of max peers
* Add tracing in PIP new_cost_table
* Update stat peer_count
* Use number of leeching peers for Light serve costs
* Fix test::light_params_load_share_depends_on_max_peers (wrong type)
* Remove (now) useless test
* Remove `load_share` from LightParams.Config
Prevent div. by 0
* Add LEECHER_COUNT_FACTOR
* PR Grumble: u64 to u32 for f64 casting
* Prevent u32 overflow for avg_peer_count
* Add tests for LightSync::Statistics
* feat + fix: Missing blocks in filter_changes RPC
* Implement validity check of reported hashes (in case of re-org) and re-set last_block to the last block reported that is still valid.
* Add const to set history size for validity check (32).
* test: in the case of a re-org we get same block number if hash is different
* Rename db_restore => client
* First step: make it compile!
* Second step: working implementation!
* Refactoring
* Fix tests
* PR Grumbles
* PR Grumbles WIP
* Migrate ancient blocks interating backward
* Early return in block migration if snapshot is aborted
* Remove RwLock getter (PR Grumble I)
* Remove dependency on `Client`: only used Traits
* Add test for recovering aborted snapshot recovery
* Add test for migrating old blocks
* Fix build
* PR Grumble I
* PR Grumble II
* PR Grumble III
* PR Grumble IV
* PR Grumble V
* PR Grumble VI
* Fix one test
* Fix test
* PR Grumble
* PR Grumbles
* PR Grumbles II
* Fix tests
* Release RwLock earlier
* Revert Cargo.lock
* Update _update ancient block_ logic: set local in `commit`
* Update typo in ethcore/src/snapshot/service.rs
Co-Authored-By: ngotchac <ngotchac@gmail.com>
* fix start_gas, handle OOG exceptions & NotEnoughGas
* Change START_GAS: 50_000 -> 60_000
* When the `OutOfGas exception` is received then try to double the gas until it succeeds or block gas limit is reached
* When `NotEnoughBasGas error` is received then use the required gas provided in the response
* fix(light-fetch): ensure block_gas_limit is tried
Try the `block_gas_limit` before regard the execution as an error
* Update rpc/src/v1/helpers/light_fetch.rs
Co-Authored-By: niklasad1 <niklasadolfsson1@gmail.com>
* added sign_191 rpc method
* fixed hash_structured_data return type
* added ConfirmationPayload::SignMessage for non-prefixed signatures, added tests for sign191
* renamed WithValidator -> PresignedTransaction
* rename applicationData to data in test
* adds docs for EIP191Version, renamed SignRequest to EIP191SignRequest
* ethcore: use Machine::verify_transaction on parent block
also fixes off-by-one activation of transaction permission contract
* ethcore: clarify call to verify_transaction
* Add FIXME link for a state mod statement
* Remove unused benches feature in ethcore
* Fix evm benches compile
* Fix ethash benches compile
* Switch to criterion
* Update test reference.
Block test are really not working so I disabled a few by commenting
directly in source.
* Move ethtest commit cursor.
* Implements 'NoProof' engine from https://github.com/ethereum/tests/issues/464 .
Since tests has been regenerated those one were failing on block
difficulty check.
Update ethereum/tests, waiting for cost fix (block test are still
commented).
* Update tests submodule reference to latest (all test passing except an
identified case).
Fix block reward of constantinople json.
* Restore broken test by using old json tests files.
* Use CanonNoSeal instead of a custom engine, still have to include some
additional tests code.
* Gas upper limit check in json_chain test was bad, moving the test to
verification, the test is running in `verify_header_param`.
Note that test was previously only for ethash, and now for any engine.
* Restore old behavior (gas uper limit only for ethash engine), at the
cost of an additional trait method.
* Proper rpc test fix.
* Update tests submodule, add SStore bug tests.
* Fix json issue tabulation.
Update tests submodule to latest master (lot of new sstore tests
passing)
* Switch ethereum/tests to tag 6.0.0-beta.1 (no tests changes from latest
synch).
* Display hex with separator, use indirection instead of clone for copy
types.
* Fixing and disabling some tests for windows 10 compatibility.
* Few adjustment for windows in tests (eg bigger timeout for keyserver tests)
* Spaces and temporary single thread ci (to be able to spot the error).
* Clean up serde rename and use rename_all = camelCase when possible
* snake_case for pricing
* Use camelcase for engine
* Use camel case for seal
* Use camel case for validator set
* Use camel case for confirmation payload
* Use camel case for consensus status
* Use camel case for nodekind
* Use kebab case for provenance
* Use camel case for pubsub
* Use lowercase and camelcase for trace
* Use camel case for whisper
* rename Ethash as irregular name
* Update Dockerfile
Since parity is built for "mission critical use", I thought other operators may see the need for this.
Adding the `curl` and `jq` commands allows for an extremely simple health check to be usable in container orchestrators.
For example. Here is a health check for a parity docker container running in Kubernetes.
This can be setup as a readiness Probe that would prevent clustered nodes that aren't ready from serving traffic.
```bash
#!/bin/bash
ETH_SYNCING=$(curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://localhost:8545 -H 'Content-Type: application/json')
RESULT=$(echo "$ETH_SYNCING | jq -r .result)
if [ "$RESULT" == "false" ]; then
echo "Parity is ready to start accepting traffic"
exit 0
else
echo "Parity is still syncing the blockchain"
exit 1
fi
```
* add sync check script
* aura: emit ancestry actions for finalizing blocks
* aura: refactor is_epoch_end to get finalized blocks as argument
* ethcore: add is_epoch_end_light method to Engine
The full client now tracks finality by querying the engine on each block import,
and it also persists the finalization state to the DB. For the light client
current it doesn't persist finality information and only keeps track of finality
for epoch signals, by calling `is_epoch_end_light`. This method implements the
previously existing logic of building finality for all the blocks in the current
epoch and then checking the finalized blocks against the transition store.
* ethcore: allow finalizing current block
* aura: fix construction of finality proof
* aura: fix warnings
- missing docs for is_epoch_end_light
- unused method unfinalized_hashes in RollingFinality
* aura: fix clone on copy types
* If no subchain heads then try a different peer
* Add log when useless chain head
* Restrict ChainHead useless peer to ancient blocks
* sync: replace `limit_reorg` with `block_set` condition
* Replace `tokio_core` with `tokio`.
* Remove `tokio-core` and replace with `tokio` in
- `ethcore/stratum`
- `secret_store`
- `util/fetch`
- `util/reactor`
* Bump hyper to 0.12 in
- `miner`
- `util/fake-fetch`
- `util/fetch`
- `secret_store`
* Bump `jsonrpc-***` to 0.9 in
- `parity`
- `ethcore/stratum`
- `ipfs`
- `rpc`
- `rpc_client`
- `whisper`
* Bump `ring` to 0.13
* Use a more graceful shutdown process in `secret_store` tests.
* Convert some mutexes to rwlocks in `secret_store`.
* Consolidate Tokio Runtime use, remove `CpuPool`.
* Rename and move the `tokio_reactor` crate (`util/reactor`) to
`tokio_runtime` (`util/runtime`).
* Rename `EventLoop` to `Runtime`.
- Rename `EventLoop::spawn` to `Runtime::with_default_thread_count`.
- Add the `Runtime::with_thread_count` method.
- Rename `Remote` to `Executor`.
* Remove uses of `CpuPool` and spawn all tasks via the `Runtime` executor
instead.
* Other changes related to `CpuPool` removal:
- Remove `Reservations::with_pool`. `::new` now takes an `Executor` as an argument.
- Remove `SenderReservations::with_pool`. `::new` now takes an `Executor` as an argument.
* Replace `tokio_core` with `tokio`.
* Remove `tokio-core` and replace with `tokio` in
- `ethcore/stratum`
- `secret_store`
- `util/fetch`
- `util/reactor`
* Bump hyper to 0.12 in
- `miner`
- `util/fake-fetch`
- `util/fetch`
- `secret_store`
* Bump `jsonrpc-***` to 0.9 in
- `parity`
- `ethcore/stratum`
- `ipfs`
- `rpc`
- `rpc_client`
- `whisper`
* Bump `ring` to 0.13
* Use a more graceful shutdown process in `secret_store` tests.
* Convert some mutexes to rwlocks in `secret_store`.
* Consolidate Tokio Runtime use, remove `CpuPool`.
* Rename and move the `tokio_reactor` crate (`util/reactor`) to
`tokio_runtime` (`util/runtime`).
* Rename `EventLoop` to `Runtime`.
- Rename `EventLoop::spawn` to `Runtime::with_default_thread_count`.
- Add the `Runtime::with_thread_count` method.
- Rename `Remote` to `Executor`.
* Remove uses of `CpuPool` and spawn all tasks via the `Runtime` executor
instead.
* Other changes related to `CpuPool` removal:
- Remove `Reservations::with_pool`. `::new` now takes an `Executor` as an argument.
- Remove `SenderReservations::with_pool`. `::new` now takes an `Executor` as an argument.
* Replace `tokio_core` with `tokio`.
* Remove `tokio-core` and replace with `tokio` in
- `ethcore/stratum`
- `secret_store`
- `util/fetch`
- `util/reactor`
* Bump hyper to 0.12 in
- `miner`
- `util/fake-fetch`
- `util/fetch`
- `secret_store`
* Bump `jsonrpc-***` to 0.9 in
- `parity`
- `ethcore/stratum`
- `ipfs`
- `rpc`
- `rpc_client`
- `whisper`
* Bump `ring` to 0.13
* Use a more graceful shutdown process in `secret_store` tests.
* Convert some mutexes to rwlocks in `secret_store`.
* Consolidate Tokio Runtime use, remove `CpuPool`.
* Rename and move the `tokio_reactor` crate (`util/reactor`) to
`tokio_runtime` (`util/runtime`).
* Rename `EventLoop` to `Runtime`.
- Rename `EventLoop::spawn` to `Runtime::with_default_thread_count`.
- Add the `Runtime::with_thread_count` method.
- Rename `Remote` to `Executor`.
* Remove uses of `CpuPool` and spawn all tasks via the `Runtime` executor
instead.
* Other changes related to `CpuPool` removal:
- Remove `Reservations::with_pool`. `::new` now takes an `Executor` as an argument.
- Remove `SenderReservations::with_pool`. `::new` now takes an `Executor` as an argument.
* Replace `tokio_core` with `tokio`.
* Remove `tokio-core` and replace with `tokio` in
- `ethcore/stratum`
- `secret_store`
- `util/fetch`
- `util/reactor`
* Bump hyper to 0.12 in
- `miner`
- `util/fake-fetch`
- `util/fetch`
- `secret_store`
* Bump `jsonrpc-***` to 0.9 in
- `parity`
- `ethcore/stratum`
- `ipfs`
- `rpc`
- `rpc_client`
- `whisper`
* Bump `ring` to 0.13
* Use a more graceful shutdown process in `secret_store` tests.
* Convert some mutexes to rwlocks in `secret_store`.
* Consolidate Tokio Runtime use, remove `CpuPool`.
* Rename and move the `tokio_reactor` crate (`util/reactor`) to
`tokio_runtime` (`util/runtime`).
* Rename `EventLoop` to `Runtime`.
- Rename `EventLoop::spawn` to `Runtime::with_default_thread_count`.
- Add the `Runtime::with_thread_count` method.
- Rename `Remote` to `Executor`.
* Remove uses of `CpuPool` and spawn all tasks via the `Runtime` executor
instead.
* Other changes related to `CpuPool` removal:
- Remove `Reservations::with_pool`. `::new` now takes an `Executor` as an argument.
- Remove `SenderReservations::with_pool`. `::new` now takes an `Executor` as an argument.
* prevent zero networkID, closes#8345
Signed-off-by: Seun LanLege <seunlanlege@gmail.com>
* updated networkID of olymic chain spec
Signed-off-by: Seun LanLege <seunlanlege@gmail.com>
* Add signed refund
* Use signed 256-bit integer for sstore gas refund substate
* Fix tests
* Remove signed mod and use i128 directly
* Fix evm test case casting
* Fix jsontests ext signature
* Log block set in block_sync for easier debugging
* logging macros
* Match no args in sync logging macros
* Add QueueFull error
* Only allow importing headers if the first matches requested
* WIP
* Test for chain head gaps and log
* Calc distance even with 2 heads
* Revert previous commits, preparing simple fix
This reverts commit 5f38aa885b22ebb0e3a1d60120cea69f9f322628.
* Reject headers with no gaps when ChainHead
* Reset block sync download when queue full
* Simplify check for subchain heads
* Add comment to explain subchain heads filter
* Fix is_subchain_heads check and comment
* Prevent premature round completion after restart
This is a problem on mainnet where multiple stale peer requests will
force many rounds to complete quickly, forcing the retraction.
* Reset stale old blocks request after queue full
* Revert "Reject headers with no gaps when ChainHead"
This reverts commit 0eb865539e5dee37ab34f168f5fb643300de5ace.
* Add BlockSet to BlockDownloader logging
Currently it is difficult to debug this because there are two instances,
one for OldBlocks and one for NewBlocks. This adds the BlockSet to all
log messages for easy log filtering.
* Reset OldBlocks download from last enqueued
Previously when the ancient block queue was full it would restart the
download from the last imported block, so the ones still in the queue would be
redownloaded. Keeping the existing downloader instance and just
resetting it will start again from the last enqueued block.:wq
* Ignore expired Body and Receipt requests
* Log when ancient block download being restarted
* Only request old blocks from peers with >= difficulty
https://github.com/paritytech/parity-ethereum/pull/9226 might be too
permissive and causing the behaviour of the retraction soon after the
fork block. With this change the peer difficulty has to be greater than
or euqal to our syncing difficulty, so should still fix
https://github.com/paritytech/parity-ethereum/issues/9225
* Some logging and clear stalled blocks head
* Revert "Some logging and clear stalled blocks head"
This reverts commit 757641d9b817ae8b63fec684759b0815af9c4d0e.
* Reset stalled header if useless more than once
* Store useless headers in HashSet
* Add sync target to logging macro
* Don't disable useless peer and fix log macro
* Clear useless headers on reset and comments
* Use custom error for collecting blocks
Previously we resued BlockImportError, however only the Invalid case and
this made little sense with the QueueFull error.
* Remove blank line
* Test for reset sync after consecutive useless headers
* Don't reset after consecutive headers when chain head
* Delete commented out imports
* Return DownloadAction from collect_blocks instead of error
* Don't reset after round complete, was causing test hangs
* Add comment explaining reset after useless
* Replace HashSet with counter for useless headers
* Refactor sync reset on bad block/queue full
* Add missing target for log message
* Fix compiler errors and test after merge
* ethcore: revert ethereum tests submodule update
* ci: force-tag wiki changes
* ci: force-tag wiki changes
* ci: skip docs job for master and nightly
* ci: revert docs job checking for nightly tag
* ci: exclude docs job from nightly builds in gitlab script
* `ExecutionsRequest` from light-clients as read-only
This changes so all `ExecutionRequests` from light-clients are executed
as read-only which the `virtual``flag == true ensures.
This boost up the current transaction to always succeed
Note, this only affects `eth_estimateGas` and `eth_call` AFAIK.
* grumbles(revert renaming) : TransactionProof
* grumbles(trace) : remove incorrect trace
* grumbles(state/prove_tx) : explicit `virt`
Remove the boolean flag to determine that a `state::prove_transaction`
whether it should be executed in a virtual context or not.
Because of that also rename the function to
`state::prove_transction_virtual` to make more clear
* Implement CREATE2 gas changes and fix some potential overflowing
* Ignore create2 state tests
* Split CREATE and CREATE2 in gasometer
* Generalize rounding (x + 31) / 32 to to_word_size
* sync: Validate received BlockHeaders packets against stored request.
* sync: Validate received BlockBodies and BlockReceipts.
* sync: Fix broken tests.
* sync: Unit tests for BlockDownloader::import_headers.
* sync: Unit tests for import_{bodies,receipts}.
* tests: Add missing method doc.
* add a new RPC `eth_submitWorkDetail`similar `eth_submitWork`.
It has more details (block hash, error message, and more in future)
in its response and not only the `true` or `false`.
* move RPC submitWorkDetail from namespace eth_ to parity_
* remove SubmitDetailResult type; submitWorkDetail return a error when failed
* change error message of RPC error `cannot_submit_work`.
* remove double imported H256.
* put submit_work_detail into a helper to avoid the duplicate codes.
* Add new Vm trappable interface
* Exec/Resume interface
* Basic implementation of CallCreateExecutive
* Implement resume_call and resume_create for executive
* Move convertion to call/create result to separate function
* Implement consume that converts resumable to non-resumable
* Use consume for Executive::call/create
* Resumable EVM
* Implement tracing mode without needing subtracers
* Implement vmtracer so it doesn't require extra structs for subtracing
* Use the new tracing mode in executive
* Fix most of the linting errors for cargo build
* Add the concept of stack_depth
* Add back crossbeam
* Fix some test compile
* Fix prefix address test
* Fix evm crate tests
* Fix wasm crate test compile
* Fix wasm runner compile
* Fix jsontests compile
* Fix evmbin compile
* Fix an issue with create nonce and better vm tracing interface
* Fix linting
* Fix evmbin compile
* Fix unconfirmed_substate and static_flag
* Fix an issue in create address logic
* Fix top-level tracing
* Handle builtin tracing
* Fix suicide and reward tracing index stack
* Fix an issue where trap conflicts with tracing
* Fix an issue in parent step vm tracing
* Fix revert tracing
* Fix evmbin tests
* Remove params clone
* Fix TODO proofs
* Fix jsontests compile
* Fix evmbin merge issue
* Fix wasm merge issue
* Fix wasm test
* Fix ethcore merge warnings
* Fix evmbin compile
* Better expect messages and add some trace::skip_one asserts
* ci: reduce gitlab pipelines significantly
* ci: build pipeline for PR
* ci: remove dead weight
* ci: remove github release script
* ci: remove forever broken aura tests
* ci: add random stuff to the end of the pipes
* ci: add wind and mac to the end of the pipe
* ci: remove snap artifacts
* ci: (re)move dockerfiles
* ci: clarify job names
* ci: add cargo audit job
* ci: make audit script executable
* ci: ignore snap and docker files for rust check
* ci: simplify audit script
* ci: rename misc to optional
* ci: add publish script to releaseable branches
* ci: more verbose cp command for windows build
* ci: fix weird binary checksum logic in push script
* ci: fix regex in push script for windows
* ci: simplify gitlab caching
* docs: align README with ci changes
* ci: specify default cargo target dir
* ci: print verbose environment
* ci: proper naming of scripts
* ci: restore docker files
* ci: use docker hub file
* ci: use cargo home instead of cargo target dir
* ci: touch random rust file to trigger real builds
* ci: set cargo target dir for audit script
* ci: remove temp file
* ci: don't export the cargo target dir in the audit script
* ci: fix windows unbound variable
* docs: fix gitlab badge path
* rename deprecated gitlab ci variables
https://docs.gitlab.com/ee/ci/variables/#9-0-renaming
* ci: fix git compare for nightly builds
* test: skip c++ example for all platforms but linux
* ci: add random rust file to trigger tests
* ci: remove random rust file
* disable cpp lib test for mac, win and beta (#9686)
* test.sh: use cargo --target for platforms other than linux, win or mac
* drying test.sh script
* run tests only when not cross-compiling
* quote variable value
* ethcore: propose hardfork block number 4230000 for ropsten
* ethcore: propose hardfork block number 9000000 for kovan
* ethcore: enable kip-4 and kip-6 on kovan
* etcore: bump kovan hardfork to block 9.2M
* ethcore: fix ropsten constantinople block number to 4.2M
* ethcore: disable difficulty_test_ropsten until ethereum/tests are updated upstream
* VerificationQueue don't spawn up extra threads
In the verification queue we spawn up worker threads to do the work.
However, if `num-verifiers` is specified we still spawn the maximum
number of threads which consume extra memory.
There is one catch though when `--scale-verifiers` is specified then
we can't do it because all threads are created upon initilization AFAIK.
In my opinion, is doesn't to use both `num-verifiers` and
`scale-verifiers` they are kind of contradictory!
* Fix nits in logic and add tests for verification
* refactor(verification queue) - rm hardcoded const
* Address grumbles in new tests
* Remove hardcoded `MAX_VERIFIERS` constant and replace it by relying
entirely on `num_cpu` crate instead inorder to support CPUs that have
more cores/logical cores
* Add constantinople conf to EvmTestClient.
* Skip some test to update submodule etheureum/tests submodule to latest.
* Put skipping 'under issue' test behind a feature.
* Change blockReward for const-test to pass ethereum/tests
* Update tests to new constantinple definition (change of reward at block
5).
Switch 'reference' to string, that way we can include issues from others
repo (more flexible)Update tests to new constantinple definition (change
of reward at block 5).
Switch 'reference' to string, that way we can include issues from others
repo (more flexible).
* Fix modexp and bn128_mul gas prices in chain config
* Changes `run_test_path` method to append its directory results (without
that it stop testing at the first file failure).
Add some missing tests.
Add skip for those (block create2 is one hundred percent false but on
hive we can see that geth and aleth got similar issue for this item).
* retab current.json
* Update reference to parity issue for failing tests.
* docs: prepare changelog for 2.1.0 beta
* docs: move changelog for 2.0.x to stable
* docs: add changelog for legacy 1.11.x
* docs: add release notes for 2.0.x beta releases
* docs: mark 1.11 end of life
* docs: prepare release notes for 2.0.5 stable
* docs: prepare release notes for 2.1.0 beta
* ci: ignore docs in tests
* docs: bump version in readme
* docs: update changelog for 2.0.5 stable
* docs: update changelog for 2.1.0 beta
* docs: update changelog for 2.1.0 beta
* docs: remove eip86 from release notes
* docs: update changelog for 2.1.0
* docs: add changelog for 2.1.1 and 2.0.6
* docs: correct spelling of certain words in the latest changelog
* while working on the platform tests make them non-critical
* ci: unify test stage job names and torelate more failures
* ci: restore valid yaml
* ci: allow beta and nightly rust builds to fail
* look into commit changes
* look into commit changes ii
* all on test
* build only_releaseable_branches for platforms
* allow failure for check during development
* windows test typo
* fix sh for windows
* remove check stage again
* debug macos platform
* ci: always run build pipelines for win, mac, linux, and android
* ci: always run build pipelines for win, mac, linux, and android
* ci: disallow failure for publish scripts
* ci: enable tests on master
* ci: run tests in debug mode to speed things up
* ci: only build windows, darwin, and android targets on PRs
* ci: reenable darwin and android pipelines on PR
* ci: revert tests to run in release mode
* new ethabi migration in progress
* parity migrated to new ethabi
* migrated secred-store to new ethabi
* bump ethabi to 6.0
* fixed review suggestions
* OnDemand no longer loop until there is a query.
All peer known at the time will be queried, and the query fail if all
return no reply.
Returning the failure is done through an empty Vec of reply (the type
of the oneshot channel remains unchanged).
Before this commit the query were send randomly to any peer until there
is a reply (for a query that got no result it was an issue, for other
queries it was quering multiple times the same peers).
After this commit the first query is random but next queries
follows hashmap iterator order.
Test no_capability was broken by this commit (the pending query was
removed).
* OnDemand no longer loop until there is a query.
All peer known at the time will be queried, and the query fail if all
return no reply.
Returning the failure is done through an empty Vec of reply (the type
of the oneshot channel remains unchanged).
Before this commit the query were send randomly to any peer until there
is a reply (for a query that got no result it was an issue, for other
queries it was quering multiple times the same peers).
After this commit the first query is random but next queries
follows hashmap iterator order.
Test no_capability was broken by this commit (the pending query was
removed). If adding some kind of timeout mechanism it could be restored.
* Comment plus better field names.
* No panick on dropped oneshot channel.
* Use Set to avoid counter heuristic
* Cli option `on_demand_nb_retry` for maximum number of retry when doing
on demand query in light client.
* Missing test update for previous commit
* Add a timeout (only when there is no peer to query), that way we do not
set number of query to minimum current number peer or configured number
of query : that way capability test was restored.
* Adding an error type for on_demand, it helps having variant of error
reported at rpc level : choice of rpc error code error might not be
right.
* Duration as constant is nice
* Switch to duration in main too
* Fix indentation (sorry for that).
* Fix error management (bad merge in previous commit)
* Lots of english corrections, major change on the new command parameters :
- use standard '-' instead of '_'
- renaming nb_retry params to 'on-demand-retry-count'
* Enable all Constantinople hard fork changes in constantinople_test.json
* Address grumbles
* Remove EIP-210 activation
* 8m -> 5m
* Temporarily add back eip210 transition so we can get test passed
* Add eip210_test and remove eip210 transition from const_test
* `light::verify_transaction` basic tx validation
* update wasm tests
* Provide `cached_nonce` in `parity_next_nonce` RPC
* nits
* Improve error handeling
Two separate errors for distinguishing between `account not found` and
`insufficient balance`. However, when `next_nonce()` is called and the
account is not found then provide `local_best_next_nonce`!
* Ensure only one n/w request is performed
Refactored to code again:
* Removed `fn cached_next_nonce`
* Removed extra n/w request in `sign` to check balance
* Refactored `fill_optional_field` to request nonce and check account balance
* nits
* grumbles needless clone
* Prevent integer overflow with saturating add & mul
* Call `sign_transaction()` directly from `sign()`
Because the change in `fill_optional_fields` always fill the nonce it is
now possible to call `sign_transaction` directly instead of creating a
`ProspectiveSigner` "object".
* Replace hardcoded JSON with serde json! macro
* Use "{:#x}" formatter instead of "0x{:x}"
* Sort fields of JSON test strings alphabetically
* Stop escaping new lines in evmbin JSON errors
* Remove unnecessary 'to_string()' calls
* Add test with non-empty storage values
* Update & fix JSON state tests.
* Update tests to be able to run ethtest at
021fe3d410773024cd5f0387e62db6e6ec800f32.
- Touch user in state
- Adjust transaction tests to new json format
* Switch to same commit for submodule ethereum/test as geth (next includes constantinople changes).
Added test `json_tests::trie::generic::TrieTests_trieanyorder` and a few
difficulty tests.
* Remove trietestnextprev as it would require to parse differently and
implement it.
* Support new (shitty) format of transaction tests.
* Ignore junk in ethereum/tests repo.
* Ignore incorrect test.
* Update to a later commit
* Move block number to a constant.
* Fix ZK2 test - touched account should also be cleared.
* Fix conflict resolution
* Implement last_checkpoint_storage_at
* Add reverted_storage_at for externalities
* sstore_clears_count -> sstore_clears_refund
* Implement eip1283 for evm
* Add eip1283Transition params
* evm: fix tests
* jsontests: fix test
* Return checkpoint index when creating
* Comply with spec Version II
* Fix docs
* Fix jsontests feature compile
* Address grumbles
* Fix no-checkpoint-entry case
* Remove unnecessary expect
* Add test for State::checkpoint_storage_at
* Add executive level test for eip1283
* Hard-code transaction_checkpoint_index to 0
* Fix jsontests
* Add tests for checkpoint discard/revert
* Require checkpoint to be empty for kill_account and commit
* Get code coverage
* Use saturating_add/saturating_sub
* Fix issues in insert_cache
* Clear the state again
* Fix original_storage_at
* Early return for empty RLP trie storage
* Update comments
* Fix borrow_mut issue
* Simplify checkpoint_storage_at if branches
* Better commenting for gas handling code
* Address naming grumbles
* More tests
* Fix an issue in overwrite_with
* Add another test
* Fix comment
* Remove unnecessary bracket
* Move orig to inner if
* Remove test coverage for this PR
* Add tests for executive original value
* Add warn! for an unreachable cause
* ethcore: don't validate difficulty when ignoring seal check
* ethcore: fix block verification test
* ethcore: document skipped verifications when check_seal is disabled
* Provide the actual `account` for eth_coinbase
The previous implementation always provided the `zero address` on
`eth_coinbase` RPC. Now, instead the actual address is returned on
success or an error when no account(s) is found!
* full client `eth_coinbase` return err
In the full-client return an error when no account is found instead of
returning the `zero address`
* Remove needless blocks on single import
* Remove needless `static` lifetime on const
* Fix `rpc_eth_author` test
This PR is fixing deadlock for #8918
It avoids some recursive calls on light_sync by making state check optional for Informant.
The current behavior is to display the information when informant checks if block is major version.
This change a bit the informant behavior, but not on most cases.
To remember where and how this kind of deadlock are likely to happen (not seen with Parkinglot deadlock detection because it uses std condvar), I am adding a description of the deadlock.
Also, for the reviewers there may be better solution than modifying the informant.
### Thread1
- ethcore/sync/light_sync/mod.rs
A call to the light handler through any Io (having a loop of rpc query running on like client makes the dead lock way more likely).
At the end of those calls we systematically call `maintain_sync` method.
Here maintain_sync locks `state` (it is the deadlock cause), with a write purpose
`maintain_sync` -> `begin_search` with the state locked open
`begin_search` -> lightcliennt `flush_queue` method
- ethcore/light/src/client/mod.rs
`flush_queue` -> `flush` on queue (HeaderQueue aka VerificationQueue of headers)
- ethcore/src/verification/queue/mod.rs
Condition there is some unverified or verifying content
`flush` wait on a condvar until the queue is empty. The only way to unlock condvar is that worker is empty and unlock it (so thread 2 is Verification worker).
### Thread2
A verification worker at the end of a verify loop (new block).
- ethcore/src/verification/queue/mod.rs
thread loops on `verify` method.
End of loop condition is_ready -> Import the block immediately
calls `set_sync` on QueueSignal which send a BlockVerified ClientIoMessage in inner channel (IoChannel of ClientIoMessage) using `send_sync`
- util/io/src/service_mio.rs
IoChannel `send_sync` method calls all handlers with `message` method; one of the handlers is ImportBlocks IoHandler (with a single inner Client service field)
- ethcore/light/src/client/service.rs
`message` trigger inner method `import_verified`
- core/light/src/client/mod.rs
`import_verified` at the very end notify the listeners of a new_headers, one of the listeners is Informant `listener` method
- parity/informant.rs
`newHeaders` run up to call to `is_major_importing` on its target (again clinet)
- ethcore/sync/src/light_sync/mod.rs
Here `is_major_importing` tries to get state lock (read purpose only) but cannot because of previous state lock, thus deadlock
* Add EIP-1014 transition config flag
* Remove EIP-86 configs
* Change CREATE2 opcode index to 0xf5
* Move salt to the last item in the stack
* Change sendersaltandaddress scheme to comply with current EIP-1014
* Fix json configs
* Fix create2 test
* Fix deprecated comments
- Update foundation hardcoded header to block 6219777
- Update ropsten hardcoded header to block 3917825
- Update kovan hardcoded header to block 8511489
This adds block reward contract config to ethash. A new config `blockRewardContractCode` is also added to both Aura and ethash. When specified, it will execute the code directly and overrides any `blockRewardContractAddress` config. Having this `blockRewardContractCode` config allows chains to deploy hard fork by simply replacing the current config value, without the need from us to support any `multi` block reward scheme.
* Verify private transaction before propagating
* Private transactions queue reworked with tx pool queue direct usage
* Styling fixed
* Prevent resending private packets to the sender
* Process signed private transaction packets via io queue
* Test fixed
* Build and test fixed after merge
* Comments after review fixed
* Signed transaction taken from verified
* Fix after merge
* Pool scoring generalized in order to use externally
* Lib refactored according to the review comments
* Ready state refactored
* Redundant bound and copying removed
* Fixed build after the merge
* Forgotten case reworked
* Review comments fixed
* Logging reworked, target added
* Fix after merge
* Updating the CI system with the publication of releases and binary files on github
Signed-off-by: Denis S. Soldatov aka General-Beck <general.beck@gmail.com>
* add missed scripts
* chmod +x scripts
* fix download link for github
* rebuilding CI scripts
* small fixes
* update submodule wasm tests
* ci: fix merge leftovers
* ci: remove gitlab-next from ci triggers
* ci: fix git add in docs script
* ci: use nightly instead of master for publish triggers
* ci: remove sleep from gitlab config
* ci: replace ':' with '-' in gitlab targets
* ci: fix recursive copy in docs script
* Light client on-demand request for headers range.
* Cache headers in HeaderWithAncestors response.
Also fulfills request locally if all headers are in cache.
* LightFetch::logs fetches missing headers on demand.
* LightFetch::logs limit the number of headers requested at a time.
* LightFetch::logs refactor header fetching logic.
* Enforce limit on header range length in light client logs request.
* Fix light request tests after struct change.
* Respond to review comments.
* Add update docs script to CI
Added a script to CI that will use the jsonrpc tool to update rpc
documentation then commit and push those to the wiki repo.
* fix gitlab ci lint
* Only apply jsonrpc docs update on tags
* Update gitlab-rpc-docs.sh
* Copy correct parity repo to jsonrpc folder
Copy correct parity repo to jsonrpc folder before attempting to build docs since the CI runner clones the repo as parity and not parity-ethereum.
* Fix JSONRPC docs CI job
Update remote config in wiki repo before pushing changes using a github
token for authentication. Add message to wiki tag when pushing changes.
Use project directory to correctly copy parity code base into the
jsonrpc repo for doc generation.
* Fix set_remote_wiki function call in CI
* Import the `home` crate in `util/dir`.
* Replace uses of `env::home_dir()` with `home::home_dir()`.
* `home` uses a 'correct' impl. on windows and the stdlib impl.
of `::home_dir` otherwise.
* Reexport `home::home_dir` from `util/dir`.
* Bump `util/dir` to 0.1.2.
* Provide `default_nonce` in tx`s when it´s missing
When `nonce` is missing in a `EthTransaction` will cause it to fall in
these cases provide `default_nonce` value instead!
* Changed http:// to https:// on Yasm link (#9369)
Changed http:// to https:// on Yasm link in README.md
* Provide `default_nonce` in tx`s when it´s missing
When `nonce` is missing in a `EthTransaction` will cause it to fall in
these cases provide `default_nonce` value instead!
* Address grumbles
* Fix PubSub for logs when using light client :
prior to this fix the pubsub process did send a
query for each new block header (and for each subs : there is something
to optimize here) by setting from and to of the filter at this block
number; but there was a bug in the code that fetch logs : it was non
inclusive for its start bound, meaning that with start bound = end bound
we never query any block (and attached logs).
* Option iter instead of once.
Use of bloom existing function to check if a bloom contains another.
* Makes from block header checking explicit
* Remove pass-by-reference return data value from executive
* Fix tests
* Fix a missing test output
* typo: wasm_activation_test
* Tracing change in output
* json_tests: fix compile
* typo: 0..32 -> ..32 to keep it consistent with other occurance
* Fix tests
* Feed in ActionParams on VM creation
* Fix ethcore after Vm interface change
* Move informant inside Interpreter struct
* Move do_trace to Interpreter struct
* Move all remaining exec variables to Interpreter struct
* Refactor VM to allow single opcode step
* Fix all EVM tests
* Fix all wasm tests
* Fix wasm runner tests
* Fix a check case where code length is zero
* Fix jsontests compile
* Fix cargo lock
* Use match instead of expect
* Use cheaper check reader.len() == 0 for the initial special case
* Get rid of try_and_done! macro by using Result<(), ReturnType>
* Use Never instead of ()
* Fix parity-bytes path
* Bypass gasometer lifetime problem by borrow only for a instance
* typo: missing {
* Fix ethcore test compile
* Fix evm tests
* Implement EIP234
* Make filter conversion returns error if both blockHash and from/toBlock is found
This also changes PollFilter to store the EthFilter type, instead of the jsonrpc one, saving repeated conversion.
* Return error if block filtering target is not found in eth_getLogs
Use the old behavior (unwrap_or_default) for anywhere else.
* fix test: secret_store
* Fix weird indentation
* Make client log filter return error in case a block cannot be found
* Return blockId error in rpc
* test_client: allow return error on logs
* Add a mocked test for eth_getLogs error
* fix: should return error if from_block/to_block greater than best block number
* Add notes on pending
* Add comment for UNSUPPORTED_REQUEST
* Address grumbles
* Return err if from > to
* ethcore: fix pow difficulty validation
* ethcore: validate difficulty is not zero
* ethcore: add issue link to regression test
* ethcore: fix tests
* ethcore: move difficulty_to_boundary to ethash crate
* ethcore: reuse difficulty_to_boundary and boundary_to_difficulty
* ethcore: fix grumbles in difficulty_to_boundary_aux
* Add a `fastmap` crate that provides the H256FastMap specialized HashMap
* Use `fastmap` instead of `plain_hasher`
* Update submodules for Reasons™
* Submodule update
Closes#9255
This PR also removes the limit of max 64 transactions per packet, currently we only attempt to prevent the packet size to go over 8MB. This will only be the case for super-large transactions or high-block-gas-limit chains.
Patching this is important only for chains that have blocks that can fit more than 4k transactions (over 86M block gas limit)
For mainnet, we should actually see a tiny bit faster propagation since instead of computing 4k pending set, we only need `4 * 8M / 21k = 1523` transactions.
Running some tests on `dekompile` node right now, to check how it performs in the wild.
* Comply EIP-86 with the new CREATE2 opcode
* Fix rpc compile
* Fix interpreter CREATE/CREATE2 stack pop difference
* Add unreachable! to fix compile
* Fix instruction_info
* Fix gas check due to new stack item
* Add new tests in executive
* Fix have_create2 comment
* Remove all unused references of eip86_transition and block_number
* Implement EIP-1052 and fix several issues related to account cache
* Fix jsontests
* Merge two matches together
* Avoid making unnecessary Arc<Vec>
* Address grumbles
* blockchain insert expects owned block instead of block reference
* reduce a number of times a block is deserialized
* removed cached uncle_bytes from block
* removed is_finalized from OpenBlock
* removed unused parity_machine::WithMetadata trait
* removed commented out code
* remove unused metadata from block
* remove unused metadata from block
* BlockDetails extras may have at most 5 elements
Previously we only allow downloading of old blocks if the peer
difficulty was greater than our syncing difficulty. This change allows
downloading of blocks from peers where the difficulty is greater then
the last downloaded old block.
* Insert PROOF messages for some cases in blockchain
* Break expect to its own line to avoid things being too long
* Be more specific for all low-level database error cases
* Fix BranchBecomingCanonChain expect
* ethcore: fix typo in expect proof message
* Added --tx-queue-no-early-reject flag to disable early tx queue rejects because of low gas price
* Fixed failing tests, clarified comments and simplified no_early_reject field name.
* Added test case for the --tx-queue-no-early-reject flag
* parity: fix UserDefaults json parser
* parity: use serde_derive for UserDefaults
* parity: support deserialization of old UserDefault json format
* parity: make UserDefaults serde backwards compatible
* parity: tabify indentation in UserDefaults
* Reject if Engine::on_close_block returns error
* Unify open block behaviors
* Fix tests in ethcore
* Fix Aura tests
* Fix RPC test
* Print a warning if open block failed
* Print the actual error when closing the block
* Update comments for prepare_pending_block
* Add BlockPreparationStatus to distingish three different state after prepare_pending_block
* Insert Kovan hardcoded headers until #7690241
* Insert Kovan hardcoded headers until block 7690241
* Insert Ropsten hardcoded headers until #3612673
* Insert Mainnet hardcoded headers until block 5941249
* Revert "Replace `std::env::home_dir` with `dirs::home_dir` (#9077)"
This reverts commit 7e779327eb.
* Restore some of the changes
* Update parity-common
* discovery: Only add nodes to routing table after receiving pong.
Previously the discovery algorithm would add nodes to the routing table
before confirming that the endpoint is participating in the protocol. This
now tracks in-flight pings and adds to the routing table only after receiving
a response.
* discovery: Refactor packet creation into its own function.
This function is useful inside unit tests.
* discovery: Additional testing for new add_node behavior.
* discovery: Track expiration of pings to non-yet-in-bucket nodes.
Now that we may ping nodes before adding to a k-bucket, the timeout tracking
must be separate from BucketEntry.
* discovery: Verify echo hash on pong packets.
Stores packet hash with in-flight requests and matches with pong response.
* discovery: Track timeouts on FIND_NODE requests.
* discovery: Retry failed pings with exponential backoff.
UDP packets may get dropped, so instead of immediately booting nodes that fail
to respond to a ping, retry 4 times with exponential backoff.
* !fixup Use slice instead of Vec for request_backoff.
* Remove the dapps system from Parity
* Move node-health outside of dapps
* Fix set dapps list test
* Update Cargo.lock
* Deprecate options
* Add _legacy_ prefixes in Dapps
* Fix tests
* Fix deprecatedness of dapps-path
* getting started
* refactor main
* unwrap_or -> unwrap_or_else
* force parity to lower version number to trigger update
* Fix typos
* formating
* some minor refactoring
* enable lints and fix some warnings
* make it compile
* minor tweaks to make it work
* address review comments
* Rename exe to exe_path and minor import changes
* updater: unreleased -> unknown
* Add `debug` configuration to force parity-updater
* Introduce a new feature `test-updater` in order conditionally hardcode
the version number in parity in order to force an update
* This should only be used for debug/dev purposes
* nits
* Pulled latest submodule of `wasm-tests`
* CHECK macro to replace hard-coded checks
* Clean up deprecated options
* typo: FlAG -> FLAG
* Fix tests
* Deprecated non-used ui params default is None
* test: arg_ui_path is not deprecated
* arg_ui_port should be None
* Address grumbles
* Fix tests
* fetch: replace futures-timer with tokio-timer
Currently the coverage build fails because `futures-timer` fails to compile with
`-C link-dead-code`. This issue has been reported to `futures-timer`
(https://github.com/alexcrichton/futures-timer/issues/2) but has remained unsolved
for months. It should be fixed by rustc eventually
(https://github.com/rust-lang/rust/issues/45629).
* ci: only include local paths in coverage
* ci: exclude target from coverage
* aura: only report after checking for repeated skipped primaries
* aura: refactor duplicate code for getting epoch validator set
* aura: verify_external: report on validator set contract instance
* aura: use correct validator set epoch number when reporting
* aura: use epoch set when verifying blocks
* aura: report skipped primaries when generating seal
* aura: handle immediate transitions
* aura: don't report skipped steps from genesis to first block
* aura: fix reporting test
* aura: refactor duplicate code to handle immediate_transitions
* aura: let reporting fail on verify_block_basic
* aura: add comment about possible failure of reporting
* Make work-notify an optional feature
* More optional ethcore features: price-info, stratum
* Make ethcore features part of dependency instead of local features
* Put cfg gate in right location
* Feature gate register function on work-notify
* rpc: return unordered transactions in pending transactions filter
* ethcore: use LruCache for nonce cache
Only clear the nonce cache when a block is retracted
* Revert "ethcore: use LruCache for nonce cache"
This reverts commit b382c19abdb9985be1724c3b8cde83906da07d68.
* Use only cached nonces when computing pending hashes.
* Give filters their own locks, so that they don't block one another.
* Fix pending transaction count if not sealing.
* Clear cache only when block is enacted.
* Fix RPC tests.
* Address review comments.
* Bump parking_lot to 0.6
* Bump parity-wasm to 0.31 so it gets rid of parking_lot
ref https://github.com/paritytech/parity-wasm/pull/206
* Update jsonrpc versions
* Update wasmi and pwasm-utils version
* Fix compile
* Update jsonrpc crates
* Store recently rejected transactions.
* Don't cache AlreadyImported rejections.
* Make the size of transaction verification queue dependent on pool size.
* Add a test for recently rejected.
* Fix logging for recently rejected.
* Make rejection cache smaller.
* obsolete test removed
* obsolete test removed
* Construct cache with_capacity.
The `patricia_trie` crate is generic over the hasher (by way of HashDB) and node encoding scheme. Adds a new `patricia_trie_ethereum` crate with concrete impls for Keccak/RLP.
* Handle graceful shutdown with unwinding
* Fix a race condition
* Avoid double exit deadlock
* typo: fix docs
* Fix ethkey cli compilation
* Fix all other cases panic_hook::set -> panic_hook::set_abort
* struct fields do not need to be public
* Add comments on why exiting AtomicBool is needed
* Add option for user to set max size limit for RPC requests as requested in #8961.
* Add max_payload to tests.
* Change name for max payload option and change value from NUM to MB.
* Fix broken test.
* Fix incorrect indentation.
* Additional tests for NonceAndGasPrice::should_replace.
* Fix should_replace in the distinct sender case.
* Use natural priority ordering to simplify should_replace.
* Add a basic instruction c-like enum
* Fix all compiling errors
* Fix tests
* Access instruction info as a Instruction impl
* Use macro to avoid duplication in from_u8
* Use single space instead of multiple tabs to avoid formatting issue
* Fix evmbin compile
* typo: indentation
* Use if let to remove an expect
* Address grumbles
* disable hardware-wallets that don't support libusb
* address grumbles
* nits
* Refactor to get rid off as much annotations asap
* Might consume slight more memory than pure conditional compilation
flags
* formatting nits
* Enable libusb for android
* Tested by it compiling succesfully with `cargo build --target=armv7--linux-androideabi`
* The binary is ~66 MB
```bash
$ size
size target/armv7-linux-androideabi/release/parity
text data bss dec hex filename
50676230 416200 31456 51123886 30c16ae target/armv7-linux-androideabi/release/parity
```
* Move all `fake-hardware-wallet` to its own crate
* Removes some conditional compilation flags
* Introduces `fake-hardware-wallet` crate
* return error if no hardware wallets are found
* Make it possible to expose jsontests using feature flag
* Add start_stop_hook for jsontests
* Fix evmbin compile
* Implement vm jsontests times to tsv result
* Use /usr/bin/env to avoid errors on non-Debian systems
* Move evmbin/bench.sh to scripts and add vm_jsontests script for convenience
* Add tempdir as required deps for test-helpers
* Address grumbles on comments
* Detect file/folder automatically and add command docs
* Fix bench script
* times -> timings
* typo: wrong if condition
* eliminate some more transmute()
* Address `review comments`
* Make unsafe block smaller
* Use different byte-order than `std`, read words as big endian instead
of little endian!
* Fix IpAddresses nits
* Use `from_be` to work both for big and little endian
* Ipv6 addresses were incorrectly `transmuted`
* remove needless lifetime annotation
* new blooms database
* fixed conflict in Cargo.lock
* removed bloomchain
* cleanup in progress
* all tests passing in trace db with new blooms-db
* added trace_blooms to BlockChainDB interface, fixed db flushing
* BlockChainDB no longer exposes RwLock in the interface
* automatically flush blooms-db after every insert
* blooms-db uses io::BufReader to read files, wrap blooms-db into Mutex, cause fs::File is just a shared file handle
* fix json_tests
* blooms-db can filter multiple possibilities at the same time
* removed enum trace/db.rs CacheId
* lint fixes
* fixed tests
* kvdb-rocksdb uses fs-swap crate
* update Cargo.lock
* use fs::rename
* fixed failing test on linux
* fix tests
* use fs_swap
* fixed failing test on linux
* cleanup after swap
* fix tests
* fixed osx permissions
* simplify parity database opening functions
* added migration to blooms-db
* address @niklasad1 grumbles
* fix license and authors field of blooms-db Cargo.toml
* restore blooms-db after snapshot
* Add tx_queue_allow_unknown_local config option
- Previous commit messages:
dispatcher checks if we have the sender account
Add `tx_queue_allow_unknown_local` to MinerOptions
Add `tx_queue_allow_unknown_local` to config
fix order in MinerOptions to match Configuration
add cli flag for tx_queue_allow_unknown_local
Update refs to `tx_queue_allow_unknown_local`
Add tx_queue_allow_unknown_local to config test
revert changes to dispatcher
Move tx_queue_allow_unknown_local to `import_own_transaction`
Fix var name
if statement should return the values
derp de derp derp derp semicolons
Reset dispatch file to how it was before
fix compile issues + change from FLAG to ARG
add test and use `into`
import MinerOptions, clone the secret
Fix tests?
Compiler/linter issues fixed
Fix linter msg - case of constants
IT LIVES
refactor to omit yucky explict return
update comments
Fix based on diff AccountProvider.has_account method
* Refactor flag name + don't change import_own_tx behaviour
fix arg name
Note: force commit to try and get gitlab tests working again 😠
* Add fn to TestMinerService
* Avoid race condition from trusted sources
- refactor the miner tests a bit to cut down on code reuse
- add `trusted` param to dispatch_transaction and import_claimed_local_transaction
Add param to `import_claimed_local_transaction`
Fix fn sig in tests
* scripts: remove rpm packages
* scripts: remove deb packages
* scripts: remove unused zip archives
* scripts: remove unused ssl references
* scripts: remove debian and centos pipelines
* scripts: rename ubuntu to generic linux
* scripts: restore archives used in gitlab artifacts
* scripts: init submodules for full test suite
* scripts: do not publish master builds, only nightly, stable, beta
* Atomic create new files with permissions to owner in ethstore
* Allow replacing existing files
We have two behaviors for `insert_with_filename` depending on whether `dedup` is true. Add
`replace_file_with_permissions_to_owner` which use `OpenOptions::create(true)` instead of `create_new`.
* Add new ovh bootnodes and fix port for foundation bootnode 3.2
* Remove old bootnodes.
* Remove duplicate 1118980bf48b0a3640bdba04e0fe78b1add18e1cd99bf22d53daac1fd9972ad650df52176e7c7d89d1114cfef2bc23a2959aa54998a46afcf7d91809f0855082
* Add removed geth compatibility field in log
* Fix mocked tests
* Add field block hash in PollFilter
* Store last block hash info for log filters
* Implement canon route
* Use canon logs for fetching reorg logs
Light client removed logs fetching is disabled. It looks expensive.
* Make sure removed flag is set
* Address grumbles
* getting started
* getting started
* signing personal messages works and refactoring
* Refactor `Ledger`
* Make `Ledger Manager` only visible inside the hardwallet-crate
* Refactor `send_apdu` with separate functions for read and write
* Add support for signing messages through `ethcore`
* Trezor modify update_devices and some error msgs
* nits
* Remove unused Result wrap in has_account
* Check whether we need to reseal for external transactions
* Fix reference to has_account interface
* typo: missing )
* Refactor duplicates to prepare_and_update_sealing
* Fix build
* Fix concurrent access to signer queue
* Put request back to the queue if confirmation failed
* typo: fix docs and rename functions to be more specific
`request_notify` does not need to be public, and it's renamed to `notify_result`.
`notify` is renamed to `notify_message`.
* Change trace info "Transaction" -> "Request"
* Tx permission contract improvement
* Use tuple for to address
* Introduced ABI for deprecated tx permission contract
* Improved ABI for tx permission contract with contract name, name hash and version
* Introduced support for deprecated tx permission contract + fixed cache for the new version + introduced `target` for tx filter loging
* Introduced test for the new tx permission contract version + old test renamed as deprecated
* Removed empty lines
* Introduced filter_only_sender return value in allowedTxTypes fn + improved caching
* Introduced version checking for tx permission contract
* Moved tx permission contract test genesis specs to separate files
* handle queue import errors a bit more gracefully (#8385)
* Some tweaks to main.rs for parity as a library (#8370)
* Some tweaks to main.rs for parity as a library
* Remove pub from PostExecutionAction
* New Transaction Queue implementation (#8074)
* Implementation of Verifier, Scoring and Ready.
* Queue in progress.
* TransactionPool.
* Prepare for txpool release.
* Miner refactor [WiP]
* WiP reworking miner.
* Make it compile.
* Add some docs.
* Split blockchain access to a separate file.
* Work on miner API.
* Fix ethcore tests.
* Refactor miner interface for sealing/work packages.
* Implement next nonce.
* RPC compiles.
* Implement couple of missing methdods for RPC.
* Add transaction queue listeners.
* Compiles!
* Clean-up and parallelize.
* Get rid of RefCell in header.
* Revert "Get rid of RefCell in header."
This reverts commit 0f2424c9b7319a786e1565ea2a8a6d801a21b4fb.
* Override Sync requirement.
* Fix status display.
* Unify logging.
* Extract some cheap checks.
* Measurements and optimizations.
* Fix scoring bug, heap size of bug and add cache
* Disable tx queueing and parallel verification.
* Make ethcore and ethcore-miner compile again.
* Make RPC compile again.
* Bunch of txpool tests.
* Migrate transaction queue tests.
* Nonce Cap
* Nonce cap cache and tests.
* Remove stale future transactions from the queue.
* Optimize scoring and write some tests.
* Simple penalization.
* Clean up and support for different scoring algorithms.
* Add CLI parameters for the new queue.
* Remove banning queue.
* Disable debug build.
* Change per_sender limit to be 1% instead of 5%
* Avoid cloning when propagating transactions.
* Remove old todo.
* Post-review fixes.
* Fix miner options default.
* Implement back ready transactions for light client.
* Get rid of from_pending_block
* Pass rejection reason.
* Add more details to drop.
* Rollback heap size of.
* Avoid cloning hashes when propagating and include more details on rejection.
* Fix tests.
* Introduce nonces cache.
* Remove uneccessary hashes allocation.
* Lower the mem limit.
* Re-enable parallel verification.
* Add miner log. Don't check the type if not below min_gas_price.
* Add more traces, fix disabling miner.
* Fix creating pending blocks twice on AuRa authorities.
* Fix tests.
* re-use pending blocks in AuRa
* Use reseal_min_period to prevent too frequent update_sealing.
* Fix log to contain hash not sender.
* Optimize local transactions.
* Fix aura tests.
* Update locks comments.
* Get rid of unsafe Sync impl.
* Review fixes.
* Remove excessive matches.
* Fix compilation errors.
* Use new pool in private transactions.
* Fix private-tx test.
* Fix secret store tests.
* Actually use gas_floor_target
* Fix config tests.
* Fix pool tests.
* Address grumbles.
* clarify that windows need perl and yasm (#8402)
* Unify and limit rocksdb dependency places (#8371)
* secret_store: remove kvdb_rocksdb dependency
* cli: init db mod for open dispatch
* cli: move db, client_db, restoration_db, secretstore_db to a separate mod
* migration: rename to migration-rocksdb and remove ethcore-migrations
* ethcore: re-move kvdb-rocksdb dep to test
* mark test_helpers as test only and fix migration mod naming
* Move restoration_db_handler to test_helpers_internal
* Fix missing preambles in test_helpers_internal and rocksdb/helpers
* Move test crates downward
* Fix missing docs
* cli, db::open_db: move each argument to a separate line
* Use featuregate instead of dead code for `open_secretstore_db`
* Move pathbuf import to open_secretstore_db
Because it's only used there behind a feature gate
* Use tokio::spawn in secret_store listener and fix Uri (#8373)
* Directly wait for future to resolve in a threadpool
* Ignore return value
* Use path.starts_with instead of req_uri.is_absolute
The later now means something else in hyper 0.11..
* Use tokio::spawn
* typo: remove accidential unsafe impl
* remove Tendermint extra_info due to seal inconsistencies (#8367)
* More code refactoring to integrate Duration (#8322)
* More code refactoring to integrate Duration
* Fix typo
* Fix tests
* More test fix
* tokio-core v0.1.16 -> v0.1.17 (#8408)
* Replace legacy Rlp with UntrustedRlp and use in ethcore rlp views (#8316)
* WIP
* Replace Rlp with UntrustedRlp in views, explicity unwrap with expect
First pass to get it to compile. Need to figure out whether to do this or to propogate Errors upstream, which would require many more changes to dependent code. If we do this way we are assuming that the views are always used in a context where the rlp is trusted to be valid e.g. when reading from our own DB. So need to fid out whether views are used with data received from an untrusted (e.g. extrernal peer).
* Remove original Rlp impl, rename UntrustedRlp -> Rlp
* Create rlp views with view! macro to record debug info
Views are assumed to be over valid rlp, so if there is a decoding error we record where the view was created in the first place and report it in the expect
* Use $crate in view! macro to avoid import, fix tests
* Expect valid rlp in decode functions for now
* Replace spaces with tabs in new file
* Add doc tests for creating views with macro
* Update rlp docs to reflect removing of UntrustedRlp
* Replace UntrustedRlp usages in private-tx merge
* Fix TODO comments (#8413)
* update zip to 0.3 (#8381)
* update zip to 0.3
* enable zip deflate feature
* typo, docs parity_chainId: empty string -> None (#8434)
* Fix receipts stripping. (#8414)
* Changelogs for 1.9.6 and 1.10.1 (#8411)
* Add changelog for 1.9.6
* Add Changelog for 1.10.1
* Move ethcore::Error to error_chain (#8386)
* WIP
* Convert Ethcore error to use error_chain
* Use error_chain for ImportError and BlockImportError
* Fix error pattern matches for error_chain in miner
* Implement explicit From for AccountsError
* Fix pattern matches for ErrorKinds
* Handle ethcore error_chain in light client
* Explicitly define Result type to avoid shadowing
* Fix remaining Error pattern matches
* Fix tab space formatting
* Helps if the tests compile
* Fix error chain matching after merge
* remove From::from. (#8390)
* Some tiny modifications.
1. fix some typo in the comment.
2. sort the order of methods in 'impl state::Backend for StateDB`
* Remove the clone of code_cache, as it has been done in clone_basic.
* remove From::from. It seems not necessary.
* Use forked app_dirs crate for reverted Windows dir behavior (#8438)
* Remove unused appdirs dependency in CLI
* Use forked app_dirs crate for reverted Windows dir behavior
* Permission fix (#8441)
* Block reward contract (#8419)
* engine: add block reward contract abi and helper client
* aura: add support for block reward contract
* engine: test block reward contract client
* aura: test block reward contract
* engine + aura: add missing docs
* engine: share SystemCall type alias
* aura: add transition for block reward contract
* engine: fix example block reward contract source link and bytecode
* Improve VM executor stack size estimation rules (#8439)
* Improve VM executor stack size estimation rules
* typo: docs add "(Debug build)" comment
* Fix an off by one typo and set minimal stack size
This avoids the case if `depth_threshold == max_depth`. Usually setting stack size to zero will just rebound it to
platform minimal stack size, but we set it here just in case.
* Use saturating_sub to avoid potential overflow
* Private transactions processing error handling (#8431)
* Integration test for private transaction returned
* Do not interrupt verification in case of errors
* Helpers use specified
* Review comments fixed
* Update Cargo hidapi-rs dependency (#8447)
* Allow 32 bit pipelines to fail (#8454)
* Disable 32bit tragets for gitlab
* Rename linux pipelines
* Update wasmi (#8452)
* Return error in case eth_call returns VM errors (#8448)
* Add VMError generator
* Return executed exceptions in eth_call
* ParityShell::open `Return result` (#8377)
* start
* add error handling for winapi
* fix typo
* fix warnings and windows errors
* formatting
* Address review comments
* fix docker build (#8462)
* Add changelog for 1.9.7 and 1.10.2 (#8460)
* Add changelog for 1.9.7
* Add Changelog for 1.10.2
* Apply proper markdown
* Run a spellchecker :)
* Be pedantic about the 32-bit pipelines :)
* fix typos in vm description comment (#8446)
* Use rename_all for RichBlock and RichHeader serialization (#8471)
* typo: fix a resolved TODO comment
* Use rename_all instead of individual renames
* Don't require write lock when fetching status. (#8481)
* Bump master to 1.12 (#8477)
* Bump master to 1.12
* Bump crates to 1.12
* Bump mac installer version to 1.12
* Update Gitlab scripts
* Fix snap builds (#8483)
* Update hardcodedSync for Ethereum, Kovan, and Ropsten (#8489)
* Update wasmi and pwasm-utils (#8493)
* Update wasmi to 0.2
New wasmi supports 32bit platforms and no longer requires a special feature to build for such platforms.
* Update pwasm-utils to 0.1.5
* Remove three old warp boot nodes. (#8497)
* Return error if RLP size of transaction exceeds the limit (#8473)
* Return error if RLP size of transaction exceeds the limit
* Review comments fixed
* RLP check moved to verifier, corresponding pool test added
* `duration_ns: u64 -> duration: Duration` (#8457)
* duration_ns: u64 -> duration: Duration
* format on millis {:.2} -> {}
* Remove unused dependency `bigint` (#8505)
* remove unused dependency bigint in
* remove bigint in rpc_cli
* Show imported messages for light client (#8517)
* Directly return None if tracing is disabled (#8504)
* Directly return None if tracing is disabled
* Address gumbles: release read locks as fast as possible
* Hardware Wallet trait (#8071)
* getting started with replacing HardwareWalletManager
* trezor and ledger impls the new trait with some drawbacks
* Everything move to the new trait
* It required lifetime annotations in the trait because [u8] in unsized
* Lets now start moving entry point from HardwareWalletManager
* rename trait to Wallet
* move thread management to the actual wallets
* Moved thread management to each respective Wallet
* Cleaned up pub items that is needed to be pub
* Wallet trait more or less finished
* Cleaned up docs
* fix tests
* omit removed docs
* fix spelling, naming och remove old comments
* ledger test is broken, add correct logging format
* So locally on my machine Linux Ubuntu 17.10 the test doesn't panic but on the CI server libusb::Context::new()
fails which I don't understand because it has worked before
* Additionally the ledger test is optional so I lean toward ignoring it the CI Server
* ignore hardware tests by default
* more verbose checking in ledger test
* SecretStore: merge two types of errors into single one + Error::is_non_fatal (#8357)
* SecretStore: error unify initial commit
SecretStore: pass real error in error messages
SecretStore: is_internal_error -> Error::is_non_fatal
warnings
SecretStore: ConsensusTemporaryUnreachable
fix after merge
removed comments
removed comments
SecretStore: updated HTTP error responses
SecretStore: more ConsensusTemporaryUnreachable tests
fix after rebase
* fixed grumbles
* use HashSet in tests
* Enable WebAssembly and Byzantium for Ellaism (#8520)
* Enable WebAssembly and Byzantium for Ellaism
* Fix indentation
* Remove empty lines
* More changes for Android (#8421)
* Transaction Pool improvements (#8470)
* Don't use ethereum_types in transaction pool.
* Hide internal insertion_id.
* Fix tests.
* Review grumbles.
* Fetching logs by hash in blockchain database (#8463)
* Fetch logs by hash in blockchain database
* Fix tests
* Add unit test for branch block logs fetching
* Add docs that blocks must already be sorted
* Handle branch block cases properly
* typo: empty -> is_empty
* Remove return_empty_if_none by using a closure
* Use BTreeSet to avoid sorting again
* Move is_canon to BlockChain
* typo: pass value by reference
* Use loop and wrap inside blocks to simplify the code
Borrowed from https://github.com/paritytech/parity/pull/8463#discussion_r183453326
* typo: missed a comment
* Pass on storage keys tracing to handle the case when it is not modified (#8491)
* Pass on storage keys even if it is not modified
* typo: account and storage query
`to_pod_diff` builds both `touched_addresses` merge and storage keys merge.
* Fix tests
* Use state query directly because of suicided accounts
* Fix a RefCell borrow issue
* Add tests for unmodified storage trace
* Address grumbles
* typo: remove unwanted empty line
* ensure_cached compiles with the original signature
* Don't panic in import_block if invalid rlp (#8522)
* Don't panic in import_block if invalid rlp
* Remove redundant type annotation
* Replace RLP header view usage with safe decoding
Using the view will panic with invalid RLP. Here we use Rlp decoding directly which will return a `Result<_, DecoderError>`. While this path currently should not have any invalid RLP - it makes it safer if ever called with invalid RLP from other code paths.
* Remove expect (#8536)
* Remove expect and propagate rlp::DecoderErrors as TrieErrors
* EIP 145: Bitwise shifting instructions in EVM (#8451)
* Add SHL, SHR, SAR opcodes
* Add have_bitwise_shifting schedule flag
* Add all EIP tests for SHL
* Add SHR implementation and tests
* Implement SAR and add tests
* Add eip145transition config param
* Change map_or to map_or_else when possible
* Consolidate crypto functionality in `ethcore-crypto`. (#8432)
* Consolidate crypto functionality in `ethcore-crypto`.
- Move `ecdh`/`ecies` modules to `ethkey`.
- Refactor `ethcore-crypto` to use file per module.
- Replace `subtle` with `ethcore_crypto::is_equal`.
- Add `aes_gcm` module to `ethcore-crypto`.
* Rename `aes::{encrypt,decrypt,decrypt_cbc}` ...
... to `aes::{encrypt_128_ctr,decrypt_128_ctr,decrypt_128_cbc}`.
* ethcore, rpc, machine: refactor block reward application and tracing (#8490)
* Keep all enacted blocks notify in order (#8524)
* Keep all enacted blocks notify in order
* Collect is unnecessary
* Update ChainNotify to use ChainRouteType
* Fix all ethcore fn defs
* Wrap the type within ChainRoute
* Fix private-tx and sync api
* Fix secret_store API
* Fix updater API
* Fix rpc api
* Fix informant api
* Eagerly cache enacted/retracted and remove contain_enacted/retracted
* Fix indent
* tests: should use full expr form for struct constructor
* Use into_enacted_retracted to further avoid copy
* typo: not a function
* rpc/tests: ChainRoute -> ChainRoute::new
* Node table sorting according to last contact data (#8541)
* network-devp2p: sort nodes in node table using last contact data
* network-devp2p: rename node contact types in node table json output
* network-devp2p: fix node table tests
* network-devp2p: note node failure when failed to establish connection
* network-devp2p: handle UselessPeer error
* network-devp2p: note failure when marking node as useless
* Rlp decode returns Result (#8527)
rlp::decode returns Result
Make a best effort to handle decoding errors gracefully throughout the code, using `expect` where the value is guaranteed to be valid (and in other places where it makes sense).
* Parity as a library (#8412)
* Parity as a library
* Fix concerns
* Allow using a null on_client_restart_cb
* Fix more concerns
* Test the C library in test.sh
* Reduce CMake version to 3.5
* Move the clib test before cargo test
* Add println in test
* Trace precompiled contracts when the transfer value is not zero (#8486)
* Trace precompiled contracts when the transfer value is not zero
* Add tests for precompiled CALL tracing
* Use byzantium test machine for the new test
* Add notes in comments on why we don't trace all precompileds
* Use is_transferred instead of transferred
* Don't block sync when importing old blocks (#8530)
* Alter IO queueing.
* Don't require IoMessages to be Clone
* Ancient blocks imported via IoChannel.
* Get rid of private transactions io message.
* Get rid of deadlock and fix disconnected handler.
* Revert to old disconnect condition.
* Fix tests.
* Fix deadlock.
* Make trace-time publishable. (#8568)
* Remove State::replace_backend (#8569)
* Refactoring `ethcore-sync` - Fixing warp-sync barrier (#8543)
* Start dividing sync chain : first supplier method
* WIP - updated chain sync supplier
* Finish refactoring the Chain Sync Supplier
* Create Chain Sync Requester
* Add Propagator for Chain Sync
* Add the Chain Sync Handler
* Move tests from mod -> handler
* Move tests to propagator
* Refactor SyncRequester arguments
* Refactoring peer fork header handler
* Fix wrong highest block number in snapshot sync
* Small refactor...
* Address PR grumbles
* Retry failed CI job
* Fix tests
* PR Grumbles
* Decoding headers can fail (#8570)
* rlp::decode returns Result
* Fix journaldb to handle rlp::decode Result
* Fix ethcore to work with rlp::decode returning Result
* Light client handles rlp::decode returning Result
* Fix tests in rlp_derive
* Fix tests
* Cleanup
* cleanup
* Allow panic rather than breaking out of iterator
* Let decoding failures when reading from disk blow up
* syntax
* Fix the trivial grumbles
* Fix failing tests
* Make Account::from_rlp return Result
* Syntx, sigh
* Temp-fix for decoding failures
* Header::decode returns Result
Handle new return type throughout the code base.
* Do not continue reading from the DB when a value could not be read
* Fix tests
* Handle header decoding in light_sync
* Handling header decoding errors
* Let the DecodeError bubble up unchanged
* Remove redundant error conversion
* Update CHANGELOG for 1.9, 1.10, and 1.11 (#8556)
* Move changelog for 1.10.x
* Mark 1.9 EOL
* Prepare changelog for 1.10.3 stable
* Prepare changelog for 1.11.0 stable
* Update changelogs
* Update CHANGELOG for 1.10.3 beta
* Update CHANGELOG for 1.11.0 beta
* Update CHANGELOG for 1.11.0 beta
* Update CHANGELOG for 1.11.0 beta
* Format changelog
* Handle socket address parsing errors (#8545)
Unpack errors and check for io::ErrorKind::InvalidInput and return our own AddressParse error. Remove the foreign link to std::net::AddrParseError and add an `impl From` for that error. Test parsing properly.
* Remove unnecessary cloning in overwrite_with (#8580)
* Remove unnecessary cloning in overwrite_with
* Remove into_iter
* changelog nit (#8585)
* Rename `whisper-cli binary` to `whisper` (#8579)
* rename whisper-cli binary to whisper
* fix tests
* Add whisper CLI to the pipelines (#8578)
* Add whisper CLI to the pipelines
* Address todo, ref #8579
* Added Dockerfile for alpine linux by @andresilva, closes#3565 (#8587)
* Changelog and Readme (#8591)
* Move changelog for 1.10.x
* Mark 1.9 EOL
* Prepare changelog for 1.10.3 stable
* Prepare changelog for 1.11.0 stable
* Update changelogs
* Update CHANGELOG for 1.10.3 beta
* Update CHANGELOG for 1.11.0 beta
* Update CHANGELOG for 1.11.0 beta
* Update CHANGELOG for 1.11.0 beta
* Format changelog
* Update README for 1.11
* Fix typo
* Attempt to fix intermittent test failures (#8584)
Occasionally should_return_correct_nonces_when_dropped_because_of_limit fails, possibly because of multiple threads competing to finish. See CI logs here for an example: https://gitlab.parity.io/parity/parity/-/jobs/86738
* Make mio optional in ethcore-io (#8537)
* Make mio optional in ethcore-io
* Add some annotations, plus a check for features
* Increase timer for test
* Fix Parity UI link (#8600)
Fix link https://github.com/paritytech/parity/issues/8599
* fix compiler warning (#8590)
* Block::decode() returns Result (#8586)
* block_header can fail so return Result (#8581)
* block_header can fail so return Result
* Restore previous return type based on feedback
* Fix failing doc tests running on non-code
* Remove inject.js server-side injection for dapps (#8539)
* Remove inject.js server-side injection for dapps
* Remove dapps test `should_inject_js`
Parity doesn't inject a <script> tag inside the responses anymore
* Fix the mio test again (#8602)
* 2 tiny modification on snapshot (#8601)
* Some tiny modifications.
1. fix some typo in the comment.
2. sort the order of methods in 'impl state::Backend for StateDB`
* Remove the clone of code_cache, as it has been done in clone_basic.
* remove From::from. It seems not necessary.
* change mode: remove rust files' executable mode.
* 2 tiny modifications on snapshot.
* Use full qualified syntax for itertools::Itertools::flatten (#8606)
* Fix packet count when talking with PAR2 peers (#8555)
* Support diferent packet counts in different protocol versions.
* Fix light timeouts and eclipse protection.
* Fix devp2p tests.
* Fix whisper-cli compilation.
* Fix compilation.
* Fix ethcore-sync tests.
* Revert "Fix light timeouts and eclipse protection."
This reverts commit 06285ea8c1d9d184d809f64b5507aece633da6cc.
* Increase timeouts.
* typo: wrong indentation in kovan config (#8610)
* Fix account list double 0x display (#8596)
* Remove unused self import
* Fix account list double 0x display
* Remove manually added text to the errors (#8595)
These messages were confusing for the users especially the help message.
* Gitlab test script fixes (#8573)
* Exclude /docs from modified files.
* Ensure all references in the working tree are available
* Remove duplicated line from test script
* Fix BlockReward contract "arithmetic operation overflow" (#8611)
* Fix BlockReward contract "arithmetic operation overflow"
* Add docs on how execute_as_system works
* Fix typo
* ´main.rs´ typo (#8629)
* Typo
* Update main.rs
* Store morden db and keys in "path/to/parity/data/Morden" (ropsten uses "test", like before) (#8621)
* Store morden db and keys in "path/to/parity/data/morden" (ropsten uses "test", like before)
* Fix light sync with initial validator-set contract (#8528)
* Fix#8468
* Use U256::max_value() instead
* Fix again
* Also change initial transaction gas
* Remove NetworkContext::io_channel() (#8625)
* Remove io_channel()
* Fix warning
* Check that the Android build doesn't dep on c++_shared (#8538)
* Fork choice and metadata framework for Engine (#8401)
* Add light client TODO item
* Move existing total-difficulty-based fork choice check to Engine
* Abstract total difficulty and block provider as Machine::BlockMetadata and Machine::BlockProvider
* Decouple "generate_metadata" logic to Engine
* Use fixed BlockMetadata and BlockProvider type for null and instantseal
In this way they can use total difficulty fork choice check
* Extend blockdetails with metadatas and finalized info
* Extra data update: mark_finalized and update_metadatas
* Check finalized block in Blockchain
* Fix a test constructor in verification mod
* Add total difficulty trait
* Fix type import
* Db migration to V13 with metadata column
* Address grumbles
* metadatas -> metadata
* Use generic type for update_metadata to avoid passing HashMap all around
* Remove metadata in blockdetails
* [WIP] Implement a generic metadata architecture
* [WIP] Metadata insertion logic in BlockChain
* typo: Value -> Self::Value
* [WIP] Temporarily remove Engine::is_new_best interface
So that we don't have too many type errors.
* [WIP] Fix more type errors
* [WIP] ExtendedHeader::PartialEq
* [WIP] Change metadata type Option<Vec<u8>> to Vec<u8>
* [WIP] Remove Metadata Error
* [WIP] Clean up error conversion
* [WIP] finalized -> is_finalized
* [WIP] Mark all fields in ExtrasInsert as pub
* [WIP] Remove unused import
* [WIP] Keep only local metadata info
* Mark metadata as optional
* [WIP] Revert metadata db change in BlockChain
* [WIP] Put finalization in unclosed state
* Use metadata interface in BlockDetail
* [WIP] Fix current build failures
* [WIP] Remove unused blockmetadata struct
* Remove DB migration info
* [WIP] Typo
* Use ExtendedHeader to implement fork choice check
* Implement is_new_best using Ancestry iterator
* Use expect instead of panic
* [WIP] Add ancestry Engine support via on_new_block
* Fix tests
* Emission of ancestry actions
* use_short_version should take account of metadata
* Engine::is_new_best -> Engine::fork_choice
* Use proper expect format as defined in #1026
* panic -> expect
* ancestry_header -> ancestry_with_metadata
* Boxed iterator -> &mut iterator
* Fix tests
* is_new_best -> primitive_fork_choice
* Document how fork_choice works
* Engine::fork_choice -> Engine::primitive_fork_choice
* comment: clarify types of finalization where Engine::primitive_fork_choice works
* Expose FinalizationInfo to Engine
* Fix tests due to merging
* Remove TotalDifficulty trait
* Do not pass FinalizationInfo to Engine
If there's finalized blocks in from route, choose the old branch without calling `Engine::fork_choice`.
* Fix compile
* Fix unused import
* Remove is_to_route_finalized
When no block reorg passes a finalized block, this variable is always false.
* Address format grumbles
* Fix docs: mark_finalized returns None if block hash is not found
`blockchain` mod does not yet have an Error type, so we still temporarily use None here.
* Fix inaccurate tree_route None expect description
* typo (#8640)
* Changelog for 1.10.4-stable and 1.11.1-beta (#8637)
* Add changelog for 1.10.4
* Add changelog for 1.11.1
* Fix Typos
* Don't open Browser post-install on Mac (#8641)
Since we start parity with the UI disabled per default now, opening the browser post installation will show an annoying error message, confusing the user. This patch removes opening the browser to prevent that annoyance.
fixes#8194
* Resumable warp-sync / Seed downloaded snapshots (#8544)
* Start dividing sync chain : first supplier method
* WIP - updated chain sync supplier
* Finish refactoring the Chain Sync Supplier
* Create Chain Sync Requester
* Add Propagator for Chain Sync
* Add the Chain Sync Handler
* Move tests from mod -> handler
* Move tests to propagator
* Refactor SyncRequester arguments
* Refactoring peer fork header handler
* Fix wrong highest block number in snapshot sync
* Small refactor...
* Resume warp-sync downloaded chunks
* Add comments
* Refactoring the previous chunks import
* Fix tests
* Address PR grumbles
* Fix not seeding current snapshot
* Address PR Grumbles
* Address PR grumble
* Retry failed CI job
* Update SnapshotService readiness check
Fix restoration locking issue for previous chunks restoration
* Fix tests
* Fix tests
* Fix test
* Early abort importing previous chunks
* PR Grumbles
* Update Gitlab CI config
* SyncState back to Waiting when Manifest peers disconnect
* Move fix
* Better fix
* Revert GitLab CI changes
* Fix Warning
* Refactor resuming snapshots
* Fix string construction
* Revert "Refactor resuming snapshots"
This reverts commit 75fd4b553a38e4a49dc5d6a878c70e830ff382eb.
* Update informant log
* Fix string construction
* Refactor resuming snapshots
* Fix informant
* PR Grumbles
* Update informant message : show chunks done
* PR Grumbles
* Fix
* Fix Warning
* PR Grumbles
* Fix not downloading old blocks (#8642)
* Remove HostInfo::next_nonce (#8644)
* Remove the Keccak C library and use the pure Rust impl (#8657)
* Add license and readme
* Use pure rust implementation
* Bump version to 0.1.1
* Don't use C, prefer the pure Rust implementation
* Add test for `write_keccak`
* Bump version
* Add benchmarks
* Add benchmarks
* Add keccak_256, keccak_512, keccak_256_unchecked and keccak_512_unchecked – mostly for compatibility with ethash
* Remove failed git merge attempt from external git repo
Cargo.lock updates
* whitespace
* Mark unsafe function unsafe
* Unsafe calls in unsafe block
* Document unsafety invariants
* Revert unintended changes to Cargo.lock
* updated tiny-keccak to 1.4.2 (#8669)
* parity: improve cli help and logging (#8665)
* parity: indicate disabling ancient blocks is not recommended
* parity: display decimals for stats in informant
* Refactor EIP150, EIP160 and EIP161 forks to be specified in CommonParams (#8614)
* Allow post-homestead forks to be specified in CommonParams
* Fix all json configs
* Fix test in json crate
* Fix test in ethcore
* Fix all chain configs to use tabs
Given we use tabs in .editorconfig and the majority of chain configs.
This change is done in Emacs using `mark-whole-buffer` and `indent-region`.
* Remove HostInfo::client_version() and secret() (#8677)
* Move connection_filter to the network crate (#8674)
* Remove the error when stopping the network (#8671)
* Allow making direct RPC queries from the C API (#8588)
* Fix cli signer (#8682)
* Update ethereum-types so `{:#x}` applies 0x prefix
* Fix tx permission tests
* Use impl Future in the light client RPC helpers (#8628)
* Update mod.rs (#8695)
- Update interfaces affected by unsafe-expose
- replace `{{ }}` as this throws an error in Jekyll (wiki)
* remove empty file (#8705)
* Set the request index to that of the current request (#8683)
* Set the request index to that of the current request
When setting up the chain of (two) requests to look up a block by hash, the second need to refer to the first. This fixes an issue where the back ref was set to the subsequent request, not the current one. When the requests are executed we loop through them in order and ensure the requests that should produce headers all match up. We do this by index so they better be right.
In other words: off by one.
* parity: trim whitespace when parsing duration strings (#8692)
* Implement recursive Debug for Nodes in patrica_trie::TrieDB (#8697)
fixes#8184
* Remove unused imports (#8722)
* Update dev chain (#8717)
* Make dev chain more foundation-like and enable wasm.
* Fix compilation warnings.
* Add a test for decoding corrupt data (#8713)
* Fix compilation error on nightly rust (#8707)
On nightly rust passing `public_url` works but that breaks on stable. This works for both.
* network-devp2p: handle UselessPeer disconnect (#8686)
* Shutdown the Snapshot Service early (#8658)
* Shutdown the Snapshot Service when shutting down the runner
* Rename `service` to `client_service`
* Fix tests
* Fix local transactions policy. (#8691)
* Add a deadlock detection thread (#8727)
* Add a deadlock detection thread
Expose it under a feature flag:
`cargo build --features "deadlock_detection"`
* Address Nicklas's comments
* Remove unused function new_pow_test_spec (#8735)
* Add 'interface' option to cli (#8699)
Additionally as to the port, the new command line option
now allows the user to specify the network interface the P2P-Parity
listens, too. With support for 'all' and 'local' like in all other
versions of this flag. Default is 'all' (aka ).
* Fix some nits using clippy (#8731)
* fix some nits using clippy
* fix tests
* Remove a couple of unnecessary `transmute()` (#8736)
* bump tinykeccak to 1.4 (#8728)
* ease tiny-keccak version requirements (1.4.1 -> 1.4) (#8726)
* Remove -k/--insecure option from curl installer (#8719)
Piping `curl` to `bash` while **disabling** certificate verification can lead to security problems.
* Fix PoW blockchains sealing notifications in chain_new_blocks (#8656)
* Print warnings when fetching pending blocks (#8711)
* Lots of println to figure out what eth_getBlockByNumber does/should do
* Remove debugging
* Print warnings when fetching pending blocks
When calling `eth_getBlockByNumber` with `pending`, we now print a deprecation warning and:
* if a pending block is found, use it to respond
* if no pending block is found, respond as if if was a request for `Latest`
Addresses issue #8703 (not sure if it's enough to close it tbh)
* Fix XOR distance calculation in discovery Kademlia impl (#8589)
* network-devp2p: Test for discovery bucket insertion.
All test values are randomly generated and the assertions are checked manually.
Test fails because distance metric is implemented incorrectly.
* network-devp2p: Fix discovery distance function.
The Kademlia distance function (XOR) was implemented incorrectly as a population count.
* network-devp2p: Refactor nearest_node_entries to be on instance.
Optimizations are possible with more access to the discovery state.
* network-devp2p: Fix loss of precision in nearest_node_entries.
* network-devp2p: More efficient nearest node search.
The discovery algorithm to identify the nearest k nodes does not need to scan
all entries in all buckets.
* Remove NetworkService::config() (#8653)
* CI: Fixes for Android Pipeline (#8745)
* ci: Remove check for shared libraries in gitlab script
* ci: allow android arm build to fail
* Custom Error Messages on ENFILE and EMFILE IO Errors (#8744)
* Custom Error Messages on ENFILE and EMFILE IO Errors
Add custom mapping of ENFILE and EMFILE IO Errors (Failure because of missing system resource) right when chaining ioError into ::util::Network::Error to improve Error Messages given to user
Note: Adds libc as a dependency to util/network
* Use assert-matches for more readable tests
* Fix Wording and consistency
* Unordered iterator.
* Use unordered and limited set if full not required.
* Split timeout work into smaller timers.
* Avoid collecting all pending transactions when mining
* Remove println.
* Use priority ordering in eth-filter.
* Fix ethcore-miner tests and tx propagation.
* Review grumbles addressed.
* Add test for unordered not populating the cache.
* Fix ethcore tests.
* Fix light tests.
* Fix ethcore-sync tests.
* Fix RPC tests.
* Use sealing.enabled to emit eth_mining information
* Be more accurate on last_requests by using Option
* Add tests for internal sealing
* Add test for pow non-mining
* Add test for mining pow
Docopt handles `--help` automatically for us, however we've handled those
Errors the same as all others: by exiting with Return Code `1`, which is wrong
for a totally appropriate a quit on `--help`. Fortunately `docopt:Error`
provides an `exit` helper function that discriminates properly between fatal
and non-fatal errors and exist appropriately.
This patch makes sure we use that handy function in case we encounter such an
error in the CLI of ethkey, ethstore and whisper. Thus those are now giving
the appropriate Return code on `--help`.
fixes#8851
* devp2p: Move UDP socket handling from Discovery to Host.
* devp2p: Fix bug with potentially incorrect UDP registration.
This works right now because the Host handler happens to be the first one
registered on the IoService.
* devp2p: Use 0-initialized memory buffer instead of unsafe.
* Remove send_queue field from public interface of Discovery.
* Rename Datagramm to Datagram.
sed -i 's/Datagramm/Datagram/g' util/network-devp2p/src/discovery.rs util/network-devp2p/src/host.rs
sed -i 's/datagramm/datagram/g' util/network-devp2p/src/discovery.rs util/network-devp2p/src/host.rs
* Include target in log statements.
* Remove windows tray and installer
* Remove make_exe (installer) target
* Change windows $ARC to amd64 for consistency
* Fix windows build - revert to winapi 0.2.8
* Remove publishing of windows installer bins
* Revert "Fix not downloading old blocks (#8642)"
This reverts commit d1934363e7.
* Make sure only one thread actually imports old blocks.
* Add some trace timers.
* Bring back pending hashes set.
* Separate locks so that queue can happen while we are importing.
* Address grumbles.
* Mark test helpers and test-only specs as cfg(test)
* Use test-probe to conditionally compile test helpers
* Remove test probe and directly use features tag
* Update `add_license` script
* run script
* add `remove duplicate lines script` and run it
* Revert changes `English spaces`
* strip whitespaces
* Revert `GPL` in files with `apache/mit license`
* don't append `gpl license` in files with other lic
* Don't append `gpl header` in files with other lic.
* re-ran script
* include c and cpp files too
* remove duplicate header
* rebase nit
* Remove public node related settings
* Fix tests
* Unwrap accounts provider in all rpc apis
* Unwrap AccountProvider in all cli places
* Fix rpc tests
* Custom Error Messages on ENFILE and EMFILE IO Errors
Add custom mapping of ENFILE and EMFILE IO Errors (Failure because of missing system resource) right when chaining ioError into ::util::Network::Error to improve Error Messages given to user
Note: Adds libc as a dependency to util/network
* Use assert-matches for more readable tests
* Fix Wording and consistency
* network-devp2p: Test for discovery bucket insertion.
All test values are randomly generated and the assertions are checked manually.
Test fails because distance metric is implemented incorrectly.
* network-devp2p: Fix discovery distance function.
The Kademlia distance function (XOR) was implemented incorrectly as a population count.
* network-devp2p: Refactor nearest_node_entries to be on instance.
Optimizations are possible with more access to the discovery state.
* network-devp2p: Fix loss of precision in nearest_node_entries.
* network-devp2p: More efficient nearest node search.
The discovery algorithm to identify the nearest k nodes does not need to scan
all entries in all buckets.
* Lots of println to figure out what eth_getBlockByNumber does/should do
* Remove debugging
* Print warnings when fetching pending blocks
When calling `eth_getBlockByNumber` with `pending`, we now print a deprecation warning and:
* if a pending block is found, use it to respond
* if no pending block is found, respond as if if was a request for `Latest`
Addresses issue #8703 (not sure if it's enough to close it tbh)
Additionally as to the port, the new command line option
now allows the user to specify the network interface the P2P-Parity
listens, too. With support for 'all' and 'local' like in all other
versions of this flag. Default is 'all' (aka ).
* Set the request index to that of the current request
When setting up the chain of (two) requests to look up a block by hash, the second need to refer to the first. This fixes an issue where the back ref was set to the subsequent request, not the current one. When the requests are executed we loop through them in order and ensure the requests that should produce headers all match up. We do this by index so they better be right.
In other words: off by one.
* Allow post-homestead forks to be specified in CommonParams
* Fix all json configs
* Fix test in json crate
* Fix test in ethcore
* Fix all chain configs to use tabs
Given we use tabs in .editorconfig and the majority of chain configs.
This change is done in Emacs using `mark-whole-buffer` and `indent-region`.
* Add license and readme
* Use pure rust implementation
* Bump version to 0.1.1
* Don't use C, prefer the pure Rust implementation
* Add test for `write_keccak`
* Bump version
* Add benchmarks
* Add benchmarks
* Add keccak_256, keccak_512, keccak_256_unchecked and keccak_512_unchecked – mostly for compatibility with ethash
* Remove failed git merge attempt from external git repo
Cargo.lock updates
* whitespace
* Mark unsafe function unsafe
* Unsafe calls in unsafe block
* Document unsafety invariants
* Revert unintended changes to Cargo.lock
Since we start parity with the UI disabled per default now, opening the browser post installation will show an annoying error message, confusing the user. This patch removes opening the browser to prevent that annoyance.
fixes#8194
* Add light client TODO item
* Move existing total-difficulty-based fork choice check to Engine
* Abstract total difficulty and block provider as Machine::BlockMetadata and Machine::BlockProvider
* Decouple "generate_metadata" logic to Engine
* Use fixed BlockMetadata and BlockProvider type for null and instantseal
In this way they can use total difficulty fork choice check
* Extend blockdetails with metadatas and finalized info
* Extra data update: mark_finalized and update_metadatas
* Check finalized block in Blockchain
* Fix a test constructor in verification mod
* Add total difficulty trait
* Fix type import
* Db migration to V13 with metadata column
* Address grumbles
* metadatas -> metadata
* Use generic type for update_metadata to avoid passing HashMap all around
* Remove metadata in blockdetails
* [WIP] Implement a generic metadata architecture
* [WIP] Metadata insertion logic in BlockChain
* typo: Value -> Self::Value
* [WIP] Temporarily remove Engine::is_new_best interface
So that we don't have too many type errors.
* [WIP] Fix more type errors
* [WIP] ExtendedHeader::PartialEq
* [WIP] Change metadata type Option<Vec<u8>> to Vec<u8>
* [WIP] Remove Metadata Error
* [WIP] Clean up error conversion
* [WIP] finalized -> is_finalized
* [WIP] Mark all fields in ExtrasInsert as pub
* [WIP] Remove unused import
* [WIP] Keep only local metadata info
* Mark metadata as optional
* [WIP] Revert metadata db change in BlockChain
* [WIP] Put finalization in unclosed state
* Use metadata interface in BlockDetail
* [WIP] Fix current build failures
* [WIP] Remove unused blockmetadata struct
* Remove DB migration info
* [WIP] Typo
* Use ExtendedHeader to implement fork choice check
* Implement is_new_best using Ancestry iterator
* Use expect instead of panic
* [WIP] Add ancestry Engine support via on_new_block
* Fix tests
* Emission of ancestry actions
* use_short_version should take account of metadata
* Engine::is_new_best -> Engine::fork_choice
* Use proper expect format as defined in #1026
* panic -> expect
* ancestry_header -> ancestry_with_metadata
* Boxed iterator -> &mut iterator
* Fix tests
* is_new_best -> primitive_fork_choice
* Document how fork_choice works
* Engine::fork_choice -> Engine::primitive_fork_choice
* comment: clarify types of finalization where Engine::primitive_fork_choice works
* Expose FinalizationInfo to Engine
* Fix tests due to merging
* Remove TotalDifficulty trait
* Do not pass FinalizationInfo to Engine
If there's finalized blocks in from route, choose the old branch without calling `Engine::fork_choice`.
* Fix compile
* Fix unused import
* Remove is_to_route_finalized
When no block reorg passes a finalized block, this variable is always false.
* Address format grumbles
* Fix docs: mark_finalized returns None if block hash is not found
`blockchain` mod does not yet have an Error type, so we still temporarily use None here.
* Fix inaccurate tree_route None expect description
* Some tiny modifications.
1. fix some typo in the comment.
2. sort the order of methods in 'impl state::Backend for StateDB`
* Remove the clone of code_cache, as it has been done in clone_basic.
* remove From::from. It seems not necessary.
* change mode: remove rust files' executable mode.
* 2 tiny modifications on snapshot.
* Remove inject.js server-side injection for dapps
* Remove dapps test `should_inject_js`
Parity doesn't inject a <script> tag inside the responses anymore
Occasionally should_return_correct_nonces_when_dropped_because_of_limit fails, possibly because of multiple threads competing to finish. See CI logs here for an example: https://gitlab.parity.io/parity/parity/-/jobs/86738
Unpack errors and check for io::ErrorKind::InvalidInput and return our own AddressParse error. Remove the foreign link to std::net::AddrParseError and add an `impl From` for that error. Test parsing properly.
* rlp::decode returns Result
* Fix journaldb to handle rlp::decode Result
* Fix ethcore to work with rlp::decode returning Result
* Light client handles rlp::decode returning Result
* Fix tests in rlp_derive
* Fix tests
* Cleanup
* cleanup
* Allow panic rather than breaking out of iterator
* Let decoding failures when reading from disk blow up
* syntax
* Fix the trivial grumbles
* Fix failing tests
* Make Account::from_rlp return Result
* Syntx, sigh
* Temp-fix for decoding failures
* Header::decode returns Result
Handle new return type throughout the code base.
* Do not continue reading from the DB when a value could not be read
* Fix tests
* Handle header decoding in light_sync
* Handling header decoding errors
* Let the DecodeError bubble up unchanged
* Remove redundant error conversion
* Alter IO queueing.
* Don't require IoMessages to be Clone
* Ancient blocks imported via IoChannel.
* Get rid of private transactions io message.
* Get rid of deadlock and fix disconnected handler.
* Revert to old disconnect condition.
* Fix tests.
* Fix deadlock.
* Trace precompiled contracts when the transfer value is not zero
* Add tests for precompiled CALL tracing
* Use byzantium test machine for the new test
* Add notes in comments on why we don't trace all precompileds
* Use is_transferred instead of transferred
* Parity as a library
* Fix concerns
* Allow using a null on_client_restart_cb
* Fix more concerns
* Test the C library in test.sh
* Reduce CMake version to 3.5
* Move the clib test before cargo test
* Add println in test
rlp::decode returns Result
Make a best effort to handle decoding errors gracefully throughout the code, using `expect` where the value is guaranteed to be valid (and in other places where it makes sense).
* Keep all enacted blocks notify in order
* Collect is unnecessary
* Update ChainNotify to use ChainRouteType
* Fix all ethcore fn defs
* Wrap the type within ChainRoute
* Fix private-tx and sync api
* Fix secret_store API
* Fix updater API
* Fix rpc api
* Fix informant api
* Eagerly cache enacted/retracted and remove contain_enacted/retracted
* Fix indent
* tests: should use full expr form for struct constructor
* Use into_enacted_retracted to further avoid copy
* typo: not a function
* rpc/tests: ChainRoute -> ChainRoute::new
* Consolidate crypto functionality in `ethcore-crypto`.
- Move `ecdh`/`ecies` modules to `ethkey`.
- Refactor `ethcore-crypto` to use file per module.
- Replace `subtle` with `ethcore_crypto::is_equal`.
- Add `aes_gcm` module to `ethcore-crypto`.
* Rename `aes::{encrypt,decrypt,decrypt_cbc}` ...
... to `aes::{encrypt_128_ctr,decrypt_128_ctr,decrypt_128_cbc}`.
* Add SHL, SHR, SAR opcodes
* Add have_bitwise_shifting schedule flag
* Add all EIP tests for SHL
* Add SHR implementation and tests
* Implement SAR and add tests
* Add eip145transition config param
* Change map_or to map_or_else when possible
* Don't panic in import_block if invalid rlp
* Remove redundant type annotation
* Replace RLP header view usage with safe decoding
Using the view will panic with invalid RLP. Here we use Rlp decoding directly which will return a `Result<_, DecoderError>`. While this path currently should not have any invalid RLP - it makes it safer if ever called with invalid RLP from other code paths.
* Pass on storage keys even if it is not modified
* typo: account and storage query
`to_pod_diff` builds both `touched_addresses` merge and storage keys merge.
* Fix tests
* Use state query directly because of suicided accounts
* Fix a RefCell borrow issue
* Add tests for unmodified storage trace
* Address grumbles
* typo: remove unwanted empty line
* ensure_cached compiles with the original signature
* Fetch logs by hash in blockchain database
* Fix tests
* Add unit test for branch block logs fetching
* Add docs that blocks must already be sorted
* Handle branch block cases properly
* typo: empty -> is_empty
* Remove return_empty_if_none by using a closure
* Use BTreeSet to avoid sorting again
* Move is_canon to BlockChain
* typo: pass value by reference
* Use loop and wrap inside blocks to simplify the code
Borrowed from https://github.com/paritytech/parity/pull/8463#discussion_r183453326
* typo: missed a comment
* getting started with replacing HardwareWalletManager
* trezor and ledger impls the new trait with some drawbacks
* Everything move to the new trait
* It required lifetime annotations in the trait because [u8] in unsized
* Lets now start moving entry point from HardwareWalletManager
* rename trait to Wallet
* move thread management to the actual wallets
* Moved thread management to each respective Wallet
* Cleaned up pub items that is needed to be pub
* Wallet trait more or less finished
* Cleaned up docs
* fix tests
* omit removed docs
* fix spelling, naming och remove old comments
* ledger test is broken, add correct logging format
* So locally on my machine Linux Ubuntu 17.10 the test doesn't panic but on the CI server libusb::Context::new()
fails which I don't understand because it has worked before
* Additionally the ledger test is optional so I lean toward ignoring it the CI Server
* ignore hardware tests by default
* more verbose checking in ledger test
* Update wasmi to 0.2
New wasmi supports 32bit platforms and no longer requires a special feature to build for such platforms.
* Update pwasm-utils to 0.1.5
* Improve VM executor stack size estimation rules
* typo: docs add "(Debug build)" comment
* Fix an off by one typo and set minimal stack size
This avoids the case if `depth_threshold == max_depth`. Usually setting stack size to zero will just rebound it to
platform minimal stack size, but we set it here just in case.
* Use saturating_sub to avoid potential overflow
* Some tiny modifications.
1. fix some typo in the comment.
2. sort the order of methods in 'impl state::Backend for StateDB`
* Remove the clone of code_cache, as it has been done in clone_basic.
* remove From::from. It seems not necessary.
* WIP
* Convert Ethcore error to use error_chain
* Use error_chain for ImportError and BlockImportError
* Fix error pattern matches for error_chain in miner
* Implement explicit From for AccountsError
* Fix pattern matches for ErrorKinds
* Handle ethcore error_chain in light client
* Explicitly define Result type to avoid shadowing
* Fix remaining Error pattern matches
* Fix tab space formatting
* Helps if the tests compile
* Fix error chain matching after merge
* WIP
* Replace Rlp with UntrustedRlp in views, explicity unwrap with expect
First pass to get it to compile. Need to figure out whether to do this or to propogate Errors upstream, which would require many more changes to dependent code. If we do this way we are assuming that the views are always used in a context where the rlp is trusted to be valid e.g. when reading from our own DB. So need to fid out whether views are used with data received from an untrusted (e.g. extrernal peer).
* Remove original Rlp impl, rename UntrustedRlp -> Rlp
* Create rlp views with view! macro to record debug info
Views are assumed to be over valid rlp, so if there is a decoding error we record where the view was created in the first place and report it in the expect
* Use $crate in view! macro to avoid import, fix tests
* Expect valid rlp in decode functions for now
* Replace spaces with tabs in new file
* Add doc tests for creating views with macro
* Update rlp docs to reflect removing of UntrustedRlp
* Replace UntrustedRlp usages in private-tx merge
* Directly wait for future to resolve in a threadpool
* Ignore return value
* Use path.starts_with instead of req_uri.is_absolute
The later now means something else in hyper 0.11..
* Use tokio::spawn
* typo: remove accidential unsafe impl
* secret_store: remove kvdb_rocksdb dependency
* cli: init db mod for open dispatch
* cli: move db, client_db, restoration_db, secretstore_db to a separate mod
* migration: rename to migration-rocksdb and remove ethcore-migrations
* ethcore: re-move kvdb-rocksdb dep to test
* mark test_helpers as test only and fix migration mod naming
* Move restoration_db_handler to test_helpers_internal
* Fix missing preambles in test_helpers_internal and rocksdb/helpers
* Move test crates downward
* Fix missing docs
* cli, db::open_db: move each argument to a separate line
* Use featuregate instead of dead code for `open_secretstore_db`
* Move pathbuf import to open_secretstore_db
Because it's only used there behind a feature gate
* Implementation of Verifier, Scoring and Ready.
* Queue in progress.
* TransactionPool.
* Prepare for txpool release.
* Miner refactor [WiP]
* WiP reworking miner.
* Make it compile.
* Add some docs.
* Split blockchain access to a separate file.
* Work on miner API.
* Fix ethcore tests.
* Refactor miner interface for sealing/work packages.
* Implement next nonce.
* RPC compiles.
* Implement couple of missing methdods for RPC.
* Add transaction queue listeners.
* Compiles!
* Clean-up and parallelize.
* Get rid of RefCell in header.
* Revert "Get rid of RefCell in header."
This reverts commit 0f2424c9b7319a786e1565ea2a8a6d801a21b4fb.
* Override Sync requirement.
* Fix status display.
* Unify logging.
* Extract some cheap checks.
* Measurements and optimizations.
* Fix scoring bug, heap size of bug and add cache
* Disable tx queueing and parallel verification.
* Make ethcore and ethcore-miner compile again.
* Make RPC compile again.
* Bunch of txpool tests.
* Migrate transaction queue tests.
* Nonce Cap
* Nonce cap cache and tests.
* Remove stale future transactions from the queue.
* Optimize scoring and write some tests.
* Simple penalization.
* Clean up and support for different scoring algorithms.
* Add CLI parameters for the new queue.
* Remove banning queue.
* Disable debug build.
* Change per_sender limit to be 1% instead of 5%
* Avoid cloning when propagating transactions.
* Remove old todo.
* Post-review fixes.
* Fix miner options default.
* Implement back ready transactions for light client.
* Get rid of from_pending_block
* Pass rejection reason.
* Add more details to drop.
* Rollback heap size of.
* Avoid cloning hashes when propagating and include more details on rejection.
* Fix tests.
* Introduce nonces cache.
* Remove uneccessary hashes allocation.
* Lower the mem limit.
* Re-enable parallel verification.
* Add miner log. Don't check the type if not below min_gas_price.
* Add more traces, fix disabling miner.
* Fix creating pending blocks twice on AuRa authorities.
* Fix tests.
* re-use pending blocks in AuRa
* Use reseal_min_period to prevent too frequent update_sealing.
* Fix log to contain hash not sender.
* Optimize local transactions.
* Fix aura tests.
* Update locks comments.
* Get rid of unsafe Sync impl.
* Review fixes.
* Remove excessive matches.
* Fix compilation errors.
* Use new pool in private transactions.
* Fix private-tx test.
* Fix secret store tests.
* Actually use gas_floor_target
* Fix config tests.
* Fix pool tests.
* Address grumbles.
* start
* hash-fetch
* rpc
* revert price-info
* remove used file
* adapt to changes in fetch
* make fake-fetch generic over
* fix tests to comply with the new `fake-fetch`
* Enable UI by default, but only display info page.
* Fix test.
* Fix naming and remove old todo.
* Change "wallet" with "browser UI"
* Update text, its not deprecated, its moved
* parity-reactor: Pass over Handle in spawning fn to allow normal tokio ops
* Allow fetch to work with arbitrary requests
* typo: Fix missing handler closure
* miner, work_notify: use fetch and parity-reactor
* Fix work_notify pushing in parity CLI
* getting started
* wip wip
* add parsing of pool-size and enable panic-hook
* more cli options
* remove explicit unwrapping
* bump dependencies to parity-jsonrpc
* add tests
* remove tests
* bump jsonrpc
* Remove unused dependencies
* add logging to the cli
* Fix so `FilterManager` drops its resources
* Introduced an AtomicBool flag in FilterManager to cancel the `Decryption Worker Thread`
* Added some very basic test to faulty arguments
* ignore privileged port test
* Private transaction message added
* Empty line removed
* Private transactions logic removed from client into the separate module
* Fixed compilation after merge with head
* Signed private transaction message added as well
* Comments after the review fixed
* Private tx execution
* Test update
* Renamed some methods
* Fixed some tests
* Reverted submodules
* Fixed build
* Private transaction message added
* Empty line removed
* Private transactions logic removed from client into the separate module
* Fixed compilation after merge with head
* Signed private transaction message added as well
* Comments after the review fixed
* Encrypted private transaction message and signed reply added
* Private tx execution
* Test update
* Main scenario completed
* Merged with the latest head
* Private transactions API
* Comments after review fixed
* Parameters for private transactions added to parity arguments
* New files added
* New API methods added
* Do not process packets from unconfirmed peers
* Merge with ptm_ss branch
* Encryption and permissioning with key server added
* Fixed compilation after merge
* Version of Parity protocol incremented in order to support private transactions
* Doc strings for constants added
* Proper format for doc string added
* fixed some encryptor.rs grumbles
* Private transactions functionality moved to the separate crate
* Refactoring in order to remove late initialisation
* Tests fixed after moving to the separate crate
* Fetch method removed
* Sync test helpers refactored
* Interaction with encryptor refactored
* Contract address retrieving via substate removed
* Sensible gas limit for private transactions implemented
* New private contract with nonces added
* Parsing of the response from key server fixed
* Build fixed after the merge, native contracts removed
* Crate renamed
* Tests moved to the separate directory
* Handling of errors reworked in order to use error chain
* Encodable macro added, new constructor replaced with default
* Native ethabi usage removed
* Couple conversions optimized
* Interactions with client reworked
* Errors omitting removed
* Fix after merge
* Fix after the merge
* private transactions improvements in progress
* private_transactions -> ethcore/private-tx
* making private transactions more idiomatic
* private-tx encryptor uses shared FetchClient and is more idiomatic
* removed redundant tests, moved integration tests to tests/ dir
* fixed failing service test
* reenable add_notify on private tx provider
* removed private_tx tests from sync module
* removed commented out code
* Use plain password instead of unlocking account manager
* remove dead code
* Link to the contract changed
* Transaction signature chain replay protection module created
* Redundant type conversion removed
* Contract address returned by private provider
* Test fixed
* Addressing grumbles in PrivateTransactions (#8249)
* Tiny fixes part 1.
* A bunch of additional comments and todos.
* Fix ethsync tests.
* resolved merge conflicts
* final private tx pr (#8318)
* added cli option that enables private transactions
* fixed failing test
* fixed failing test
* fixed failing test
* fixed failing test
* Move client DB opening logic to CLI
* Move restoration db open logic to CLI
This adds KeyValueDBHandler which handles opening a new database, thus allow us to move the restoration db open logic
out of ethcore.
* Move rocksdb's compactionprofile conversion to CLI
* Move kvdb_rocksdb as test dependency for ethcore
* Fix tests due to interface change
* Fix service tests
* Remove unused migration dep for ethcore
* Some tiny modifications.
1. fix some typo in the comment.
2. sort the order of methods in 'impl state::Backend for StateDB`
* Remove the clone of code_cache, as it has been done in clone_basic.
* Read registry_address from block with REQUEST_CONFIRMATIONS_REQUIRED
* Require confirmation blocks in key_server_set
* Add license preamble
* TODO item for constant confirmation required number
* Change license year in helpers.rs to 2015-2018
* Change interpretation min and max peers
* Only min specified -> Set min to that value and max to default
* Only max specified -> Set min and max to that value
* Both specified -> Set min the smallest value and max to the largest value
* simplify logic, new ParseError & add tests
* simplify code according to the review comments
* address review comments
* more fine-grained tests
* updater: refactor updater flow into state machine
* updater: delay update randomly within max range
* updater: configurable update delay
* updater: split polling and updater state machine step
* updater: drop state to avoid deadlocking
* updater: fix fetch backoff
* updater: fix overflow in update delay calculation
* updater: configurable update check frequency
* updater: fix update policy frequency comparison
* updater: use lazy_static for platform and platform_id_hash
* updater: refactor operations contract calls into OperationsClient
* updater: make updater generic over operations and fetch client
* updater: fix compilation
* updater: add testing infrastructure and minimal test
* updater: fix minor grumbles
* updater: add test for successful updater flow
* updater: add test for update delay
* updater: add test for update check frequency
* updater: mock time and rng for deterministic tests
* updater: test backoff on failure
* updater: add test for backoff short-circuit on new release
* updater: refactor to increase readability
* updater: cap maximum backoff to one month
* updater: add test for detecting already downloaded update
* updater: add test for updater disable on fatal errors
* updater: add test for pending outdated fetch
* updater: test auto install of updates
* updater: add test for capability updates
* updater: fix capability update
* updater: use ethabi to create event topic filter
* updater: decrease maximum backoff to 1 day
* updater: cap maximum update delay with upcoming fork block number
* updater: receive state mutex guard in updater_step
* updater: overload execute_upgrade to take state mutex guard
* updater: remove unnecessary clone of latest operations info
* updater: remove latest operations info clone when triggering fetch
* dapps-fetcher: calculate keccak in-flight while reading the response
* Rename keccak_buffer_and_write -> keccak_pipe
* Fix file read bug by creating another file handle as the return value
* Return null number for pending block in eth_getBlockByNumber
* Inline false in client_query
* block hash for pending should be null
* logsBloom should be null for pending blocks
* Fix test due to logsBloom type change
* Replace Rlp with UntrustedRlp and unsafely unwrap
All Rlp methods return Result<_,DecoderError> now, so for this first
pass each will be marked with `expect("TODO")`. In the next pass we can
categorise figure out how to handle each case.
* Handle DecoderError for tendermint message
* Unwrap rlp results in TestBlockcChainClient
Rlp should be valid since created manually in tests
* Replace `use rlp::*` with explicit imports
* Remove rlp decode unwraps from light cli request
* Structured rlp encoding for curr best and latest in header chain
* Propogate decoder errors from send_packet
* Fix body uncles rlp index
* Use BodyView in sync and `expect` rlp errors
* Revert bbf28f removing original Rlp for this phase
This can be done again in the next phase, in order that we can leave the ethcore views unchanged
* Restore legacy Rlp and UntrustedRlp
Use legacy Rlp for ethcore views. Will redo replacing Rlp with UntrustedRlp in a subsequent PR
* Fix tests
* Replace boilerplate Encodable/Decodable with derive
* Use BlockView instead of Rlp, remove unwrap
* Remove rlp test_cli unwraps by using BlockView instead of Rlp directly
* Remove unneccesary change to use borrowed hash
* Construct sync block using new_from_header_and_body
* Decode patricia node with UntrustedRlp
(cherry picked from commit efb993b8e7ce087f092cb8c2f633c62ad87e4fb8)
* Replace Rlp with UntrustedRlp in triedbmut
* Handle node decode results in trie
* Use `subtle::slices_equal` for constant time comparison.
Also update the existing version of subtle in `ethcrypto` from
0.1 to 0.5
* Test specifically for InvalidPassword error.
* Very primitive test of the Client API
* [WIP] getting rid of request
* Add support for redirects.
* Remove CpuPool from `fetch::Client`.
* Adapt code to API changes and fix tests.
* Use reference counter to stop background thread.
On `clone` the counter is incremented, on `drop` decremented. Once 0 we
send `None` over the channel, expecting the background thread to end.
* Fix tests.
* Comment.
* Change expect messages.
* Use local test server for testing fetch client.
* Ensure max_size also in BodyReader.
* Replace `Condvar` with `sync_channel`.
* Re-export `url::Url` from `fetch` crate.
* Remove spaces.
* Use random ports in local test server.
* Refactor usage of registry contract
* remove unsed file
* Rename methods & fix comments
* refactor contract_client:
* Intoduced separate traits for asyncronous and syncronous contract clients
* Removed registrar from ethcore::client
* s/ContractClient/AsyncContractClient
* make the tests compile and pass
* omit changes in ethcore
* Use only one trait for ContractClient
* Use an associated type in the trait to determine syncronous or asyncronous communication
* Export the types from contract-client crate
* Document that "A" in the hash correspons to a DNS A Record A.K.A Address Record
* contract_client -> registrar
* address review feedback
* Echo back the message hash of a ping in the pong request
* Fixed broken link in README (#8012)
* Fixed broken link in README
* Updated wiki link
* [hardware wallet] sleeping -> pollling (#8018)
* Use polling, enable missing doc warnings & docs
* make try_connect_polling() a free function
* `Client` refactoring (#7038)
* Improves `BestBlock` comment
* Improves `TraceDB` comment
* Improves `journaldb::Algorithm` comment.
Probably the whole enum should be renamed to `Strategy` or something alike.
* Comments some of the `Client`'s fields
* Deglobs client imports
* Fixes comments
* Extracts `import_lock` to `Importer` struct
* Extracts `verifier` to `Importer` struct
* Extracts `block_queue` to `Importer` struct
* Extracts `miner` to `Importer` struct
* Extracts `ancient_verifier` to `Importer` struct
* Extracts `rng` to `Importer` struct
* Extracts `import_old_block` to `Importer` struct
* Adds `Nonce` trait
* Adds `Balance` trait
* Adds `ChainInfo` trait
* Fixes imports for tests using `chain_info` method
* Adds `BlockInfo` trait
* Adds more `ChainInfo` imports
* Adds `BlockInfo` imports
* Adds `ReopenBlock` trait
* Adds `PrepareOpenBlock` trait
* Fixes import in tests
* Adds `CallContract` trait
* Fixes imports in tests using `call_contract` method
* Adds `TransactionInfo` trait
* Adds `RegistryInfo` trait
* Fixes imports in tests using `registry_address` method
* Adds `ScheduleInfo` trait
* Adds `ImportSealedBlock` trait
* Fixes imports in test using `import_sealed_block` method
* Adds `BroadcastProposalBlock` trait
* Migrates `Miner` to static dispatch
* Fixes tests
* Moves `calculate_enacted_retracted` to `Importer`
* Moves import-related methods to `Importer`
* Removes redundant `import_old_block` wrapper
* Extracts `import_block*` into separate trait
* Fixes tests
* Handles `Pending` in `LightFetch`
* Handles `Pending` in filters
* Handles `Pending` in `ParityClient`
* Handles `Pending` in `EthClient`
* Removes `BlockId::Pending`, partly refactors dependent code
* Adds `StateInfo` trait
* Exports `StateOrBlock` and `BlockChain` types from `client` module
* Refactors `balance` RPC using generic API
* Refactors `storage_at` RPC using generic API
* Makes `MinerService::pending_state`'s return type dynamic
* Adds `StateOrBlock` and `BlockChain` types
* Adds impl of `client::BlockChain` for `Client`
* Exports `StateInfo` trait from `client` module
* Missing `self` use
To be fixed up to "Adds impl of `client::BlockChain` for `Client`"
* Adds `number_to_id` and refactors dependent RPC methods
* Refactors `code_at` using generic API
* Adds `StateClient` trait
* Refactors RPC to use `StateClient` trait
* Reverts `client::BlockChain` trait stuff, refactors methods to accept `StateOrBlock`
* Refactors TestClient
* Adds helper function `block_number_to_id`
* Uses `block_number_to_id` instead of local function
* Handles `Pending` in `list_accounts` and `list_storage_keys`
* Attempt to use associated types for state instead of trait objects
* Simplifies `state_at_beginning`
* Extracts `call` and `call_many` into separate trait
* Refactors `build_last_hashes` to accept reference
* Exports `Call` type from the module
* Refactors `call` and `call_many` to accept state and header
* Exports `state_at` in `StateClient`
* Exports `pending_block_header` from `MinerService`
* Refactors RPC `call` method using new API
* Adds missing parentheses
* Refactors `parity::call` to use new call API
* Update .gitlab-ci.yml
fix gitlab lint
* Fixes error handling
* Refactors `traces::call` and `call_many` to use new call API
* Refactors `call_contract`
* Refactors `block_header`
* Refactors internal RPC method `block`
* Moves `estimate_gas` to `Call` trait, refactors parameters
* Refactors `estimate_gas` in RPC
* Refactors `uncle`
* Refactors RPC `transaction`
* Covers missing branches
* Makes it all compile, fixes compiler grumbles
* Adds casts in `blockchain` module
* Fixes `PendingBlock` tests, work on `MinerService`
* Adds test stubs for StateClient and EngineInfo
* Makes `state_db` public
* Adds missing impls for `TestBlockChainClient`
* Adds trait documentation
* Adds missing docs to the `state_db` module
* Fixes trivial compilation errors
* Moves `code_hash` method to a `BlockInfo` trait
* Refactors `Verifier` to be generic over client
* Refactors `TransactionFilter` to be generic over client
* Refactors `Miner` and `Client` to reflect changes in verifier and txfilter API
* Moves `ServiceTransactionChecker` back to `ethcore`
* Fixes trait bounds in `Miner` API
* Fixes `Client`
* Fixes lifetime bound in `FullFamilyParams`
* Adds comments to `FullFamilyParams`
* Fixes imports in `ethcore`
* Fixes BlockNumber handling in `code_at` and `replay_block_transactions`
* fix compile issues
* First step to redundant trait merge
* Fixes compilation error in RPC tests
* Adds mock `State` as a stub for `TestClient`
* Handles `StateOrBlock::State` in `TestBlockChainClient::balance`
* Fixes `transaction_count` RPC
* Fixes `transaction_count`
* Moves `service_transaction.json` to the `contracts` subfolder
* Fixes compilation errors in tests
* Refactors client to use `AccountData`
* Refactors client to use `BlockChain`
* Refactors miner to use aggregate traits
* Adds `SealedBlockImporter` trait
* Refactors miner to use `SealedBlockImporter` trait
* Removes unused imports
* Simplifies `RegistryInfo::registry_address`
* Fixes indentation
* Removes commented out trait bound
* Bump master to 1.11.0 (#8021)
* Bump master to 1.11.0
* Bump price-info
* Bump mac installer version
* Fix gitlab builds
* Add MCIP-6 Byzyantium transition to Musicoin spec (#7841)
* Add test chain spec for musicoin byzantium testnet
* Add MCIP-6 Byzyantium transition to Musicoin spec
* Update mcip6_byz.json
* ethcore: update musicoin byzantium block number
* ethcore: update musicoin byzantium block number
* ethcore: update musicoin bootnodes
* Update musicoin.json
* Update musicoin.json
* More bootnodes.
* prelude to the block module cleanup (#8025)
* prelude to block cleanup
* fixed tests
* fix cache & snapcraft CI build (#8052)
after successful testing it is necessary to port in a ```beta``` and ```stable```
* Update refs to shell (#8051)
* Abstract devp2p (#8048)
* Rename ethcore-network to ethcore-network-devp2p
* Fix typo
* Extract generic traits into util/network
* Simplify util/network
* Fix devp2p tests
* Remove old feature
* Fix RPC tests
* Change port because testing environment didn't like those ports
* Improves `BestBlock` comment
* Improves `TraceDB` comment
* Improves `journaldb::Algorithm` comment.
Probably the whole enum should be renamed to `Strategy` or something alike.
* Comments some of the `Client`'s fields
* Deglobs client imports
* Fixes comments
* Extracts `import_lock` to `Importer` struct
* Extracts `verifier` to `Importer` struct
* Extracts `block_queue` to `Importer` struct
* Extracts `miner` to `Importer` struct
* Extracts `ancient_verifier` to `Importer` struct
* Extracts `rng` to `Importer` struct
* Extracts `import_old_block` to `Importer` struct
* Adds `Nonce` trait
* Adds `Balance` trait
* Adds `ChainInfo` trait
* Fixes imports for tests using `chain_info` method
* Adds `BlockInfo` trait
* Adds more `ChainInfo` imports
* Adds `BlockInfo` imports
* Adds `ReopenBlock` trait
* Adds `PrepareOpenBlock` trait
* Fixes import in tests
* Adds `CallContract` trait
* Fixes imports in tests using `call_contract` method
* Adds `TransactionInfo` trait
* Adds `RegistryInfo` trait
* Fixes imports in tests using `registry_address` method
* Adds `ScheduleInfo` trait
* Adds `ImportSealedBlock` trait
* Fixes imports in test using `import_sealed_block` method
* Adds `BroadcastProposalBlock` trait
* Migrates `Miner` to static dispatch
* Fixes tests
* Moves `calculate_enacted_retracted` to `Importer`
* Moves import-related methods to `Importer`
* Removes redundant `import_old_block` wrapper
* Extracts `import_block*` into separate trait
* Fixes tests
* Handles `Pending` in `LightFetch`
* Handles `Pending` in filters
* Handles `Pending` in `ParityClient`
* Handles `Pending` in `EthClient`
* Removes `BlockId::Pending`, partly refactors dependent code
* Adds `StateInfo` trait
* Exports `StateOrBlock` and `BlockChain` types from `client` module
* Refactors `balance` RPC using generic API
* Refactors `storage_at` RPC using generic API
* Makes `MinerService::pending_state`'s return type dynamic
* Adds `StateOrBlock` and `BlockChain` types
* Adds impl of `client::BlockChain` for `Client`
* Exports `StateInfo` trait from `client` module
* Missing `self` use
To be fixed up to "Adds impl of `client::BlockChain` for `Client`"
* Adds `number_to_id` and refactors dependent RPC methods
* Refactors `code_at` using generic API
* Adds `StateClient` trait
* Refactors RPC to use `StateClient` trait
* Reverts `client::BlockChain` trait stuff, refactors methods to accept `StateOrBlock`
* Refactors TestClient
* Adds helper function `block_number_to_id`
* Uses `block_number_to_id` instead of local function
* Handles `Pending` in `list_accounts` and `list_storage_keys`
* Attempt to use associated types for state instead of trait objects
* Simplifies `state_at_beginning`
* Extracts `call` and `call_many` into separate trait
* Refactors `build_last_hashes` to accept reference
* Exports `Call` type from the module
* Refactors `call` and `call_many` to accept state and header
* Exports `state_at` in `StateClient`
* Exports `pending_block_header` from `MinerService`
* Refactors RPC `call` method using new API
* Adds missing parentheses
* Refactors `parity::call` to use new call API
* Update .gitlab-ci.yml
fix gitlab lint
* Fixes error handling
* Refactors `traces::call` and `call_many` to use new call API
* Refactors `call_contract`
* Refactors `block_header`
* Refactors internal RPC method `block`
* Moves `estimate_gas` to `Call` trait, refactors parameters
* Refactors `estimate_gas` in RPC
* Refactors `uncle`
* Refactors RPC `transaction`
* Covers missing branches
* Makes it all compile, fixes compiler grumbles
* Adds casts in `blockchain` module
* Fixes `PendingBlock` tests, work on `MinerService`
* Adds test stubs for StateClient and EngineInfo
* Makes `state_db` public
* Adds missing impls for `TestBlockChainClient`
* Adds trait documentation
* Adds missing docs to the `state_db` module
* Fixes trivial compilation errors
* Moves `code_hash` method to a `BlockInfo` trait
* Refactors `Verifier` to be generic over client
* Refactors `TransactionFilter` to be generic over client
* Refactors `Miner` and `Client` to reflect changes in verifier and txfilter API
* Moves `ServiceTransactionChecker` back to `ethcore`
* Fixes trait bounds in `Miner` API
* Fixes `Client`
* Fixes lifetime bound in `FullFamilyParams`
* Adds comments to `FullFamilyParams`
* Fixes imports in `ethcore`
* Fixes BlockNumber handling in `code_at` and `replay_block_transactions`
* fix compile issues
* First step to redundant trait merge
* Fixes compilation error in RPC tests
* Adds mock `State` as a stub for `TestClient`
* Handles `StateOrBlock::State` in `TestBlockChainClient::balance`
* Fixes `transaction_count` RPC
* Fixes `transaction_count`
* Moves `service_transaction.json` to the `contracts` subfolder
* Fixes compilation errors in tests
* Refactors client to use `AccountData`
* Refactors client to use `BlockChain`
* Refactors miner to use aggregate traits
* Adds `SealedBlockImporter` trait
* Refactors miner to use `SealedBlockImporter` trait
* Removes unused imports
* Simplifies `RegistryInfo::registry_address`
* Fixes indentation
* Removes commented out trait bound
* Hardware-wallet fix
* More fine-grained initilization of callbacks by vendorID, productID and usb class
* Each device manufacturer gets a seperate handle thread each
* Replaced "dummy for loop" with a delay to wait for the device to boot-up properly
* Haven't been very carefully with checking dependencies cycles etc
* Inline comments explaining where shortcuts have been taken
* Need to test this on Windows machine and with Ledger (both models)
Signed-off-by: niklasad1 <niklasadolfsson1@gmail.com>
* Validate product_id of detected ledger devices
* closed_device => unlocked_device
* address comments
* add target in debug
* Address feedback
* Remove thread joining in HardwareWalletManager
* Remove thread handlers in HardwareWalletManager because this makes them unused
* Add validate_non_zero function
It's used to validate that a Spec's uint field used as a divisor is not zero.
* Add deserialize_with to gas_limit_bound_divisor
Prevents panics due to divide-by-zero on the gas_limit_bound_divisor
field.
* Add deserialize_with to difficulty_bound_divisor
Prevents panics due to divide-by-zero on the difficulty_bound_divisor
field.
* Add validate_optional_non_zero function
Used to validate Option<Uint> divisor fields.
* Use deserialize_with on optional divisor fields.
* Add #[serde(default)] attribute to divisor fields
When using `#[serde(deserialize_with)]`, `#[serde(default)]` must be specified so that missing
fields can be deserialized with the deserializer for `None`.
* aura: broadcast empty step message instead of sealing empty block
* aura: add empty_step messages to seal
* aura: include parent_hash in empty step message
* aura: verify received empty step messages
* aura: verify empty step messages in block
* aura: fix dead lock on empty_steps
* aura: fix EmptyStep Encodable
* aura: take number of empty steps into account in chain score
* aura: use empty step signers for finality
* aura: add empty "empty step" messages to seal when reading from spec
* aura: fix EmptyStep rlp encoding
* aura: use Vec<u8> instead of Bytes
* aura: fix block empty step verification
* Update .gitlab-ci.yml
fix lint
* aura: fix accumulation of empty step signatures for finality
* aura: include empty steps in seal signature
* aura: configurable max number of empty steps
* engine: pass block header to seal_fields method
This is necessary to make the number of seal fields dynamic,
e.g. activating a transition on a certain block number that changes
the seal.
* aura: add transition to enable empty step messages
* aura: clear old empty step messages on verify_block_external
* aura: ignore empty step messages from the future
* aura: report skipped primaries when empty steps are not enabled
* aura: fix tests
* aura: report misbehavior
* aura: add tests for rolling finality with multiple signatures
* engine: fix validator set test
In this test the block validation wasn't failing because the block was in the
future (expected failure) but was instead failing because the author of the
block isn't the expected authority. Since we added reporting of blocks produced
by the wrong authority this test started failing.
* aura: reward all the authors of empty step messages
* aura: fix reward attribution for new blocks
* aura: add tests for empty steps broadcasting and inclusion in blocks
* aura: reduce size of empty step messages in seal
* aura: add test for empty step inclusion in blocks
* aura: add test for rewarding of empty steps
* aura: add test for empty steps validation
* aura: fix rlp encoding of sealed empty step
* aura: fix grumbles
* rpc: generate new account id for imported wallets
* ethstore: handle duplicate wallet filenames
* ethstore: simplify deduplication of wallet file names
* ethstore: do not dedup wallet filenames on update
* ethstore: fix minor grumbles
* Refactor updater to use ethabi-derive
* Grumble: do_call type alias
* Empty commit to trigger test re-run
* migration to ethabi-5.0
* migration to ethabi-5.0 in progress
* use ethabi_deriven to generate TransactAcl contract
* use ethabi_deriven to generate Registry contract
* hash-fetch uses ethabi_derive, removed retain cycle from updater, fixed#7720
* node-filter crate uses ethabi_derive to generate peer_set contract interface
* use LruCache in node-filter instead of HashMap
* validator_set engine uses ethabi_derive
* ethcore does not depend on native_contracts
* miner does no depend on native_contracts
* secret_store does not use native_contracts (in progress)
* removed native-contracts
* ethcore and updater does not depend on futures
* updated ethereum-types
* fixed all warnings caused by using new version of ethereum-types
* updated ethabi_derive && ethabi_contract to get rid of warnings
* removed another retain cycle in updater, fixed following minor version on update
* moved contracts out of native_contracts res
* updated ethabi_contract
* fixed failing test
* fixed failing test
* there is no need to create two contracts of the same kind any more
* simplify updater::ReleaseTrack conversion into u8 and add several tests for it
* applied review suggestions
* applied review suggestions
* Update Clap dependency and remove workarounds
* WIP
* Remove line breaks in help messages for now
* Multiple values can only be separated by commas (closes#7428)
* Grumbles; refactor repeating code; add constant
* Use a single Wrapper rather than allocate a new one for each call
* Wrap --help to 120 characters rather than 100 characters
* Filter-out nodes.json
* network: sort node table nodes by failure ratio
* network: fix node table tests
* network: fit node failure percentage into buckets of 5%
* network: consider number of attempts in sorting of node table
* network: fix node table grumbles
I was investigating issues I am having with Whisper support. I've
enabled Whisper on a custom test network and inserted traces into
Whisper handler implementation (Network<T> and NetworkProtocolHandler
for Network<T>) and I noticed that the handler was never invoked.
After further research on this matter, I found out that
AttachedProtocol's register function does nothing:
https://github.com/paritytech/parity/blob/master/sync/src/api.rs#L172
but there was an implementation originally:
99075ad#diff-5212acb6bcea60e9804ba7b50f6fe6ec and it did the actual
expected logic of registering the protocol in the NetworkService.
However, as of 16d84f8#diff-5212acb6bcea60e9804ba7b50f6fe6ec ("finished
removing ipc") this implementation is gone and only the no-op function
is left.
Which leads me to a conclusion that in fact Whisper's handler never gets
registered in the service and therefore two nodes won't communicate
using it.
Solution: Resurrect original non-empty `AttachedProtocols.register`
implementation
Resolves#7566
* kvdb-rocksdb: update rust-rocksdb version
* kvdb-rocksdb: mark corruptions and attempt repair on db open
* kvdb-rocksdb: better corruption detection on open
* kvdb-rocksdb: add corruption_file_name const
* kvdb-rocksdb: rename mark_corruption to check_for_corruption
* updated ethereum-types and tiny-keccak
* Updated several deps
* Updated several more dependencies
* Modify dummy file to trigger ci
* fixed update of memmap to 0.6 in ethash crate
* Fixed fetch after update to latest reqwest
* Updated jsonrpc-core with fixes for serde
* add expects in util/version/build.rs
* fix windows and centos builds
update gitlab-build.sh
windows installer `parity_$VER_installer.exe`
rpm package `parity_$VER_x86_64.rpm`
* Update .gitlab-ci.yml
add cache ``target``
fix windows and centos arg's
* Update installer.nsi
add ``ethstore.exe, ethkey.exe and parity-evm.exe`` to windows installer
* Update cov.sh
add timeout to coverage test's (10 min per test)
* Always build everything if we're on master
* Skip if zero foles have changed, not other way around
* Update test.js
* Update test.js
* Update gitlab-test.sh
* Update gitlab-test.sh
* Update gitlab-test.sh
* Update gitlab-test.sh
* Update gitlab-test.sh
* Move miner away from ethcore.
* Fix ethcore to use miner/transaction.
* Fix tests and warnings.
* fixed incorrect merge of the test in the documentation
* rpc: implement personal_sign
* rpc: add test for personal_sign
* rpc: implement personal_ecRecover
* rpc: add test for personal_ecRecover
* rpc: fix order of arguments in personal_sign
* rpc: remove auxiliary methods for sign and ec_recover
* More thorough changes detection
This basically trades false-negatives ("dumb" last commit not touching
Rust on a Rust-touching branch) for false-positives (all builds against
`stable` and `beta` will run all tests almost always).
This seems to be a reasonable tradeoff.
Closes#6507
* We don't have Appveyor anymore
* before_script sections are not merged
* Limiting commit depth breaks branching detection
* kvdb-rocksdb: update to RocksDB 5.8.8
* kvdb-rocksdb: tune RocksDB options
* Switch to level-style compaction
* Increase default block size (16K), and use bigger blocks for HDDs (64K)
* Increase default file size base (64MB SSDs, 256MB HDDs)
* Create a single block cache shared across all column families
* Tune compaction settings using RocksDB helper functions, taking into account
memory budget spread across all columns
* Configure backgrounds jobs based on the number of CPUs
* Set some default recommended settings
* ethcore: remove unused config blockchain.db_cache_size
* parity: increase default value for db_cache_size
* kvdb-rocksdb: enable compression on all levels
* kvdb-rocksdb: set global db_write_bufer_size
* kvdb-rocksdb: reduce db_write_bufer_size to force earlier flushing
* kvdb-rocksdb: use master branch for rust-rocksdb dependency
The error is "PoW too low to compete with other messages"
This has been previously reported in #7144
Solution: prevent the move semantics
The source of the error is in PoolHandle.relay
implementation for NetPoolHandle.
Because of the move semantics, `res` variable is in fact
copied (as it implements Copy) into the closure and for
that reason, the returned result is always `false.
* created the dir crate in util
* moved code from ethstore/src/dir/paths.rs to dir crate
* rename dir module in ethstore to accounts_dir to distinguish it
from the dir crate
* changes after @tomusdrw on #6952
* parity-version module split from util
removed unused util deps and features
trigger buildbot again
only kvdb links rocksdb
snappy linker issues
* rm snappy
* fixed old version imports
Firstly, `Step.duration_remaining` casts it to u32, unnecesarily
limiting it to 2^32. While theoretically this is "good enough" (at 3
seconds steps it provides room for a little over 400 years), it is
still a lossy way to calculate the remaining time until the next step.
Secondly, step duration might be zero, triggering division by zero
in `Step.calibrate`
Solution: rework the code around the fact that duration is
typically in single digits and never grows, hence, it can be represented
by a much narrower range (u16) and this highlights the fact that
multiplying u64 by u16 will only result in an overflow in even further
future, at which point we should panic informatively (if anybody's
still around)
Similarly, panic when it is detected that incrementing the step
counter wrapped around on the overflow of usize.
As for the division by zero, prevent it by making zero an invalid
value for step duration. This will make AuRa log the constraint
mismatch and panic (after all, what purpose would zero step duration
serve? it makes no sense within the definition of the protocol,
as finality can only be achieved as per the specification
if messages are received within the step duration, which would violate
the speed of light and other physical laws in this case).
This key is not recognized by some software
(like carnix).
It is also not documented in http://doc.crates.io/manifest.html
Solution: rename this key to [package]
* Inject Parity script to all HTML dapps pages
* Small glitch
* Add injection test
* Add Special GHH commit value for serving ZIP files as DAPPS
* Refactor GithubDapp fetcher
* PR Grumbles
* Purify dappCard style
* Add support for pinning apps
* Add a section to show pinned apps
* Cleaner code
* Bump dependency versions
* Small tweaks
* Avoid double scrollbars
* Small style updates
* Bump parity/shared version
Lots of people are having trouble building from source and keep up to date. The main reason seems to be that cargo/rustup is hard to work with. The 'abort' panic strategy error is very frustrating and seems to be solved 100% of time with a clean.
Adding those lines:
When compiling a crate if you receive this error:
```
error: the crate is compiled with the panic strategy `abort` which is incompatible with this crate's strategy of `unwind`
```
Cleaning the repository will most likely solve the issue, try:
```
cargo clean
```
* Add contributing guidelines to the repository.
* Add code of conduct to the repository.
* Add note on CLA to contributing guidelines.
* Update contribution guideline headings
* Move CoC and ConG to .github
* Fix links
* Remove broken fork link.
* Add a signerPending component with popup
* Add text when no requests
* Remove lock icon
* Fix lint
* Create separate component from RequestItem
* Render different types of transaction
* Remove blue View button
* Remove useless code
* Add a dropdown popup for account selector
* Install sui latest version for hideOnScroll bug fix
* Update ui
* Update package-lock after rebase
* Require parity/ui v3.0.3
* Pass accountStore as props
* Require parity/ui v3.0.4
* Update packages to use React 16
* Rollback to react-router v3
* Use component instead of pure one
* Remove warning about mobx
* Make webpack load css from @parity/ui
* Update enzyme to support react16
* Fix lint
* Use @parity/ui v3
* Update refs of plugin-signer-* deps
* Exclude plugin-signer-* from babel processing
* Reupdate refs to old method
* Update refs again
* Update packages, pull in compiled-only repos
* Update js-precompiled to point to js-dist-paritytech
* Trigger both js & js-old builds to force update
* Update to bring scripts 100% in-sync
* Group similar methods in same grouping
* Add a shell_getMethodGroups API
* Small code clean changes
* Fix bug dapp.name not showing
* Additional error handling
* Store sources in own map
* Remove observable variables where not needed
* Refactor code and fix bug dapp not showing on approve
Now that we have added plugs to allow accessing the display, the snap needs
a desktop file. And bonus point, it will appear on the menu when it's
installed, and once you make a stable relase, it will appear in the gnome
software center app! So, one-click install for parity :)
Closes: #7056
* Start removing duplicated functionality (v1 inside v2)
* Update compilation targets
* Update locks
* Fix js-old build
* Update with removed extra references
* Adapt dev.{parity,web3}.html for extra debug info
* Update dependencies
* Remove Tooltips
* Update dependencies
* Only inject window.ethereum once
* Fix versions to 2.0.x for @parity libraries
* Update to @parity/api 2.1.x
* Update for @parity/api 2.1.x
* Freeze signer plugin dependency hashes
* Fix lint
* Move local account handling from API
* Update for 2.2.x @parity/{shared,ui}
* Update API references for middleware
* Install updated dependencies
* Update for build
* Always do local builds for development
* Remove unused hasAccounts property
* Fix Windows build for js-old
* Adjust inclusing rules to be Windows friendly
* Explicitly add --config option to webpack
* Add process.env.EMBED flag for Windows compatability
* Revert embed flag
* Fix build
* Merge changes from beta
* Update packages after merge
* Update Accounts from beta
* Update with beta
* Remove upgrade check
* Fix CI build script execution
* Make rm -rf commands cross-platform
* Remove ability to deploy wallets (only watch)
* Update path references for js-old (Windows)
* Render local dapps first
* Cleanup dependencies
* fix#6228: do not display eth price in cli for etc
Current behaviour:
When the client is started with defaults, the miner's gas calibrator
periodically queries the price of ether in usd and uses it to adjust
the wei_per_gas variable, displaying an info message in the cli each
time calibration happens. The info message mentions the price of ETH.
When started with the --min-gas-price option, the calibrator is inactive
and the price is not displayed.
Problem:
When running on an alternate chain such as ethereum classic, the info
message mentioning the ETH price is present, unless the --min-gas-price
option is used.
Solution:
if chain != foundation and --min-gas-price is not set,
don't use GasPricerConfig::Calibrated as default but rather fix
the minimum gas price to zero.
* self.chain() returns ChainType.
* match chain based on SpecType
was
--min-gas-price=[STRING]
Minimum amount of Wei per GAS to be paid for a
transaction to be accepted for mining. Overrides
--basic-tx-usd.
Issue: --basic-tx-usd does not exist. Author probably meant
--usd-per-tx.
New:
--min-gas-price=[STRING]
Minimum amount of Wei per GAS to be paid for a
transaction to be accepted for mining. Overrides
--usd-per-tx.
* use tempdir instead of devtools in kvdb-rocksdb
* use tempdir instead of devtools in migration
* use tempdir instead of devtools in ethcore-network
* fixed wrong merge
While the standard defined by Trezor as the default derivation path here
https://blog.trezor.io/trezor-integration-with-myetherwallet-3e217a652e08
says that it should be `m/44'/60'/0`, in practice they don't have an
implementation of a wallet for Ethereum themselves and refer customers
to MEW.
MEW has a custom implementation of the path derivation logic that allows them to
generate multiple addresses by essentially adding `/0`, `/1` etc to the path.
In my initial implementation of Trezor I didn't take this into
consideration unfortunately and just used the keypath that Trezor
themselves recommended. However, given that it's seemingly standard
practice to append `/0` for a "sub-address" (and this is what we've done
for Ledger as well) it seems like a mistake on my part to not take that
into consideration.
Unfortunately, anyone who has used their Trezor device with Parity
previously would now see a different address when they connect the
Trezor device the next time. The only way they would have to access the
old address is to use an old version, or by going through MEW and
selecting the Ledger keypath.
Also see #6811
* oneshot channels instead of custom promises
* Future instead of handle_dispatch
* Even less copying
* Those explicit waits were a mistake, thanks, @tomusdrw
* No more unsafe polling
* Test for the new `is_done()` method
* Mark Futures as `#[must_use]`
* Solve most compilation warnings
* `try_ready!` is more ideomatic
* Turn spaces into tabs
* Documentation and visibility improvements
* Minor code style improvements
* Make Futures run on an explisit reactor
* Another round of code style issues
* Simplify ConfirmationReceiver type
* Flatten ConfirmationOutcome into a plain Result type
* Get rid of a separate `pending` set, it was a stupid idea
* Clarify `add_request` docs
* No need to reduce the scope of the mutex here
* separate migration from util and make its dependencies into libs:
* snappy
* kvdb
* error
* common
* renamed common -> macros
* util error does not depend on snappy module
* ethsync does not depend on util nor ethcore_error
* nibbleslice and nibblevec merged with patricia_trie crate
* removed unused dependencies from util
* util journaldb traits does not need to be public
* util_error
* fixed ethcore compile error
* ignore .swo files
* Update chain.rs
* Prepare CHANGELOG for 1.7.3
* Update CHANGELOG for 1.7.3
* Update CHANGELOG for 1.7.3
* Split changelog(s) by major releases.
* Link previous release's changelogs in main
* Update CHANGELOG for 1.7.3
* More verbose changelog for 1.7.3
* rpc: transaction/receipt requests made async
* rpc: light client fetches transaction and uncle by hash/index
* on_demand: request type for transaction index
* serve transaction index requests in light protocol
* add a test for transaction index serving
* fetch transaction and receipts by hash on light client
* fix decoding tests
* light: more lenient cost table parsing (backwards compatible)
* fix tests and warnings
* LES -> PIP
* Update provider.rs
* proper doc comments for public functions
* Bump version.
* Fix RPC crate.
* Fix BoxFuture in crates.
* Compiles and passes tests!
* Get rid of .boxed()
* Fixing issues with the UI.
* Remove minihttp. Support threads.
* Reimplement files serving to do it in chunks.
* Increase chunk size.
* Remove some unecessary copying.
* Fix tests.
* Fix stratum warning and ipfs todo.
* Switch to proper branch of jsonrpc.
* Update Cargo.lock.
* Update docs.
* Include dapps-glue in workspace.
* fixed merge artifacts
* Fix test compilation.
* Optional offset and count added on client level
* Rpc interface extended
* Tests corrected
* Filtering code refactored a little bit
* Offset type was changed to usize
* Handling of block hash in offset added
* Offset reworked to number
* Trailing comma removed
* Import for Quantity type added
* Offset and count moved into filter object
* Lost comma removed
* Return empty vec instead of None in case of incorrect range
Previous version put $BASE directory in root directory.
This version clearly explains how to run as root or as specific user.
Additional configuration:
* send SIGHUP for clean exit,
* restart on fail.
Tested on Ubuntu 16.04.3 LTS with 4.10.0-33-generic x86_64 kernel
* move common forks and parameters to common params
* port specs over to new format
* fix RPC tests
* parity-machine skeleton
* remove block type
* extract out ethereum-specific methods into EthereumMachine
* beginning to integrate Machine into engines. dealing with stale transitions in Ethash
* initial porting to machine
* move block reward back into engine
* abstract block reward logic
* move last hash and DAO HF logic into machine
* begin making engine function parameters generic
* abstract epoch verifier and ethash block reward logic
* instantiate special ethereummachine for ethash in spec
* optional full verification in verify_block_family
* re-instate tx_filter in a way that works for all engines
* fix warnings
* fix most tests, further generalize engine trait
* uncomment nullengine, get ethcore tests compiling
* fix warnings
* update a bunch of specs
* re-enable engine signer, validator set, and transition handler
* migrate basic_authority engine
* move last hashes into executedblock
* port tendermint
* make all ethcore tests pass
* json-tests compilation
* fix RPC tests: change in gas limit for new block changed PoW hash
* fix minor grumbles
* validate chainspecs
* fix broken import
* fix transaction verification for pre-homestead
* 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
* Rebase and fix compilation errors (tests not yet fixed)
* Use `debug_assert` over `assert`
* Fix tests
* Assert safety, clean up
* Fix up stale cache removal, move one assert to debug_assert
* Remove printlns
* Add licenses
* Fix benches
* Inline some no-ops in a hot loop that weren't being inlined
* Add spooky comment to make sure no-one removes the inlining annotations
* Minor cleanup
* Add option to switch between mmap and ram
* Flag ethash to use less memory when running light client
* Fix tests
* Remove todo comment (it's done)
* Replace assertion with error return
* Fix indentation
* Use union instead of `transmute`
* Fix benches
* Extract to constants
* Clean up and fix soundness holes
* Fix formatting
* Ignore missing-file errors
* Make incorrect cache size an error condition instead of a panic, remove dead code
* Fix compilation errors from rebase
* Fix compilation errors in tests
* Fix compilation errors in tests
* Prepare changelog for 1.7.1
* Update changelog for 1.7.1
* Prepare changelog for 1.7.2
* Update CHANGELOG
* Update changelog for 1.7.2
* Snapshot sync kicks in after 10k blocks
* Add ropsten fork to changelog
* Add Gnosis multi-sig support to Changelog
* Update final changelog for 1.7.2
* Copy modal from keepkey branch and generalize
The keepkey PinMatrix modal needs to be the same for Trezor, but we
should probably try to keep it general since it can be used for both.
* Add trezor communication code
This is a result of much trial-and-error and a couple of dead-ends in
how to communicate and wire everything up.
Code here is still a bit WIP with lots of debug prints and stuff.
The test works though, it is possible to sign a transaction.
* Extend the basic lib to allow Trezor
This is kind of ugly and needs some cleanup and generalization. I’ve
just copy-pasted some things to bring in the trezor wallets. I’ve also
had to add a lock to the USB API so that only one thing talks to the
USB at once.
* Add RPC plumbing needed
We need to be able to get “locked” devices from the frontend to figure
out if we’re going to display the PinMatrix or not. Then we need to be
able to send a pin to a device.
* Add logic to query backend for Trezor and display PinMatrix
There’s a bug somewhere here because signing a transaction fails if you
take too long to press the confirm button on the device.
* Change back to paritytech branch
As my fork has been merged in.
* Converting spaces to tabs, as it should be
* Incorporate correct handling of EIP-155
Turns out the Trezor was adjusting the v part of the signature, and
we’re already doing that so it was done twice.
* Some circular logic here that was incorrect
BE-encoded U256 is almost the same as RLP encoded without the
size-byte, except for <u8 sized values. What’s really done is
BE-encoded U256 and then left-trimmed to the smallest size. Kind of
obvious in hindsight.
* Resolve issue where not clicking fast enough fails
The device will not repeat a ButtonRequest when you read from it, so
you need to have a blocking `read` for whatever amount of time that you
want to give the user to click. You could also have a shorter timeout
but keep retrying for some amount of time, but it would amount to the
same thing.
* Scan after pin entry to make accepting it faster
* Remove ability to cancel pin request
* Some slight cleanup
* Probe for the correct HID Version to determine padding
* Move the PinMatrix from Accounts to Application
* Removing unused dependencies
* Mistake in copying over stuff from keepkey branch
* Simplify FormattedMessage
* Move generated code to external crate
* Remove ethcore-util dependency
* Fix broken import in test
This test is useless without a connected Trezor, not sure how to make
it useful without one.
* Merge branch 'master' into fh-4500-trezor-support
# Conflicts:
# rpc/src/v1/helpers/dispatch.rs
* Ignore test that can't be run without trezor device
* Fixing grumbles
* Avoiding owning data in RPC method
* Checking for overflow in v part of signature
* s/network_id/chain_id
* Propagating an error from the HID Api
* Condensing code a little bit
* Fixing UI.
* Debugging trezor.
* Minor styling tweak
* Make message type into an actual type
This makes the message type that the RPC message accepts into an actual
type as opposed to just a string, based on feedback. Although I’m not
100% sure this has actually improved the situation.
Overall I think the hardware wallet interface needs some refactoring
love.
* Split the trezor RPC endpoint
It’s split into two more generic endpoints that should be suitable for
any hardware wallets with the same behavior to sit behind.
* Reflect RPC method split in javascript
* Fix bug with pin entry
* Fix deadlock for Ledger
* Avoid having a USB lock in just listing locked wallets
* Fix javascript issue (see #6509)
* Replace Mutex with RwLock
* Update Ledger test
* Fix typo causing faulty signatures (sometimes)
* *Actually* fix tests
* Update git submodule
Needed to make tests pass
* Swap line orders to prevent possible deadlock
* Make setPinMatrixRequest an @action
* Refactor and port CLI from Docopt to Clap (#2066)
* Add --can-restart and --force-direct to help
* Add flag support to subc & move import/export options to subcommand
* Reorder subcommand args (put positional args last in CLI help message)
For commits with an annotated tag, that tag will be the version. For other commits, a git identifier will be used.
This way, there is no need to manually edit the snap version.
* 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.
* Allow connections from firefox extension.
* Displaying actual data that will be signed on hover.
* Display a tooltip.
* Revert "Allow connections from firefox extension."
This reverts commit d3323b76fe28564c2366ceec3d891de19884192f.
* 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.
* do not cache ACL storage contract
* when error comes before initialization
* initial KeyServerSet commit
* update_nodes_set in maintain
* do not connect to self
* fixed connection establishing
* removed println
* improved KeyServerSet tracing
* moved parsing to KeyServerSet
* re-read only when blockchain is changed
* do not try to connect if not a part of cluster
* improved logging
* fixed tests
* NodeKeyPAir trait
* fixed parity to use new trait
* continue integrating with parity
* updated parity for NodeKeyPair
* completed KeyStoreNodeKeyPair
* removed comment
* removed dependency && style
* Small improvements to time estimation.
* Allow multiple NTP servers to be used.
* Removing boxing.
* Be nice.
* Be nicer.
* Update list of servers and add reference.
* do not cache ACL storage contract
* when error comes before initialization
* initial KeyServerSet commit
* update_nodes_set in maintain
* do not connect to self
* fixed connection establishing
* removed println
* improved KeyServerSet tracing
* moved parsing to KeyServerSet
* re-read only when blockchain is changed
* do not try to connect if not a part of cluster
* improved logging
* fixed tests
* Add checks for additional reserved ip addresses
100.64.0.0/10 and 240.0.0.0/4 are both reserved but not currently
filtered.
* Add check for special purpose addresses
192.0.0.0/24 - Used for the IANA IPv4 Special Purpose Address Registry
* Refactor ip_utils (#5872)
* Add checks for all ipv4 special use addresses
* Add comprehensive ipv4 test cases
* Refactor Ipv6 address checks (#5872)
* Refactor AllowIP (#5872)
* Add IpFilter struct to wrap predefined filter (AllowIP) with custom
allow/block filters.
* Refactor parsing of --allow-ips to handle custom filters.
* Move AllowIP/IpFilter from ethsync to ethcore-network where they
are used.
* Revert Cargo.lock
* Tests for custom ip filters (#5872)
* Add "none" as a valid argument for --allow-ips to allow narrow
custom ranges, eg.: --allow-ips="none 10.0.0.0/8"
* Add tests for parsing filter arguments and node endpoints.
* Add ipnetwork crate to dev dependencies for testing.
* Add ipv6 filter tests (#5872)
* Revert parity-ui-precompiled to master
* Fix minor detail in usage.txt (#5872)
* Spaces to tabs
* Rename IpFilter::new() to ::default()
* Small readability improvements
* Test (#5872)
* Revert "Test (#5872)"
This reverts commit 7a8906430a6dad633fe29df3dca57f1630851fa9.
* Update changelog for 1.6.10
* Update changelog for 1.7.0
* Move 1.7.0 to top
* Rephrase contract warp
* Update final 1.7.0 changelog
* Update beta backports in Changelog
* Fix benchmarks
* Fix unsoundness in uses of unsafety
* Remove most uses of unsafe indexing and ptr::copy_nonoverlapping
This commit also includes a completely absurd optimisation that I
promise is an honest win. You can check the benchmarks, I barely
believe it myself.
* Add safety comment
* Add more safety comments
* Update CHANGELOG for 1.6.9 stable release.
* [WIP] Prepare CHANGELOG for 1.7.0 beta release.
* Contract warp
* Update changes for 1.7.0
* Update description for 1.7.0 in changelog
* Update Changelog for 1.7.0 beta and 1.6.10 stable
* Address reviews for the Changelog.
* Fix blog URL in changelog.
* Fix typo in Changelog.
* Update changelog for 1.7.0 beta and 1.6.10 stable
I also tried unrolling the 256-iteration loop further below, but it actually caused a
slowdown (my guess is either branch prediction stopped kicking in or the instruction
cache was being maculated).
* refactor PriceInfo to use Fetch and reuse the client
* forget Fetch future to keep it running in the background
* update Debug message for price_info::Client
* wrap underlying errors in price_info client
* use debug_struct in price_info client debug implementation
* use global fetch service in price_info client
* rename gas_pricer parameter in RunCmd
* move price_info to its own crate
* fix price_info tests
* replace rustc_serialize with serde_json in price_info
* add documentation for price_info
* remove unused rustc-serialize dependency from ethcore
* fix price_info formatting
* re-export fetch crate in price_info
* remove unused cfg attributes in price_info
* add tests for price_info
* whisper skeleton
* basic message store
* rallying and message logic
* pass host info to network protocol handlers
* choose who starts rally based on node key
* module reshuffling
* mining messages
* prune messages by low PoW until below size target
* associated error type for ethkey generators and `OsRng` generator
* beginnings of RPC
* generic message handler for whisper
* reshuffle code order
* standard payload encoding and decoding
* basic crypto
* minor restructuring of net code
* implement shh_post
* merge?
* implement filters
* rand trait for hash types
* filter RPCs for whisper
* symmetric encryption of payload
* pub-sub
* filter tests
* use only secure random IDs
* attach arbitrary protocols to network
* basic integration of whisper into Parity
* eagerly prune low PoW entries
* broadcast messages with salted topics
* node info RPC
* fix import
* fix leading zeros calculation
* address minor grumbles
Add --min-gas-price (does the same as legacy --gasprice) and tweak
gas_pricer_config() and test cases. Dev preset will still be
overridden by CLI arguments, including --gasprice.
* generate proofs on newly-created state
* report only missed steps after first block
* dont report skipped if not signer
* test
* finality tracing and passing valid header to `commit_block`
* avoid proposing multiple times on the same step when validator set changes
* limit benign reports
* Ordering -> AtomicOrdering
* reinstate warning now that spam is reduced
* flush pending transition changes when necessary
* ensure epochs aren't re-zoomed on every block
* 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
* Health endpoint.
* Asynchronous health endpoint.
* Configure time api URL via CLI.
* Tests for TimeChecker.
* Health indication on Status page.
* Adding status indication to tab titles.
* Add status to ParityBar.
* Fixing lints.
* Add health status on SyncWarning.
* Fix health URL for embed.
* Nicer messages.
* Fix tests.
* Fixing JS tests.
* NTP time sync (#5956)
* use NTP to check time drift
* update time module documentation
* replace time_api flag with ntp_server
* fix TimeChecker tests
* fix ntp-server flag usage
* hide status tooltip if there's no message to show
* remove TimeProvider trait
* use Cell in FakeNtp test trait
* share fetch client and ntp client cpu pool
* Add documentation to public method.
* Removing peer count from status.
* Remove unknown upgrade status.
* Send two time requests at the time.
* Revert "Send two time requests at the time."
This reverts commit f7b754b1155076a5a5d8fdafa022801fae324452.
* Defer reporting time synchronization issues.
* Fix tests.
* Fix linting.
* do more validation of imported headers in light client
* generalize informant with traits
* informant implementation for light client
* make comment into TODO
* fix broken test
* disable full checking of headers in light client in sync tests
* refactoring traits
* separate generation session
* generalized ClusterSessions
* signing session prototype
* full_signature_math_session
* consensus session prototype
* continue signing session
* continue signing session
* continue signing session
* continue signing session
* isolated consensus logic
* started work on signing test
* complete_gen_sign_session works
* consensus tests
* get rid of duplicated data in SigningSession
* TODOs in signing session
* fixing tests
* fixed last test
* signing session in http listener
* new key server tests
* fix after merge
* enabled warnings
* fixed possible race
* ignore previous jobs responses
* include sef node in consensus when confirmed
* fixed warning
* removed extra clones
* consensus_restarts_after_node_timeout
* encrypt signature before return
* return error text along with HTTP status
* fix for odd-of-N (share check fails + not equal to local sign)
* fixed t-of-N for odd t
* fixed test cases in complete_gen_sign_session
* fixed mistimed response reaction
* jobs draft
* DecryptionJob
* consensus session tets
* fixed decryption tests
* signing job implementation
* siginng_session using new consensus_session
* added license preambles
* same_consensus_group_returned_after_second_selection
* database upgrade v0 -> v1
* typo
* fixed grumbles
* PubSub Integration WebSocket
* PubSub Provider API
* Parity License and fix switch statement
* Minor fix: use parameter api
* Exclude subscriptionId return
* Unsubscribe parameters as array
* secureProvider API added
* isSecure check
* Refractor: Formatting in callback (no Promise)
* Tests for parityProvider
* Refractor: Formatting in callback (secure API)
* Updated transaction documentation
* Module instead of API-Names, Options always as array (e.g. empty)
'parity' instead of 'parity_subscribe' calls
params with empty array as options. If eth_subscribe includes empty array parity-core will send invalid request (eth api doesn't have options)
* Removed isSecure transport check, because APIs are configurable
* Refractor Provider API to single Pubsub
* Modify transport layer to have single identifier for subscriptions
* FIX: Display pubsub errors
* Discard Messages after unsubscribing
* Fix: display error normal messages correctly
* Simplified code, removed unnecessary pubsub methods
* trace_call API 2nd argument blockNumber, first whatTrace
https://github.com/paritytech/parity/wiki/JSONRPC-trace-module#trace_call
* Separate namespaces pubsub. eth, parity, net
* Keep error for messages from unsubscribed topics.
* Fix: Unsubscribe Promise
* Add Test: Unsubscribe promise resolved
* Fix: 'error' in params
* Order by id instead of hash.
* Minimal gas price bump.
* Avoid to construct oversized transaction packets.
* Fix RPC.
* Never construct oversized transactions packet.
* Never construct oversized packets.
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.
* final engine changes
* migration to v13
* adding and removing pending transitions
* epoch_transition_for
* port snapshot to new engine methods
* final validator set interface
* fix compiler errors
* revert v13/epoch_depth transition
* make call on new epoch
* rolling finality checker
* tests for finality checker
* constructing finality proof upon pending transition
* fix warnings and finality proof checking
* fix compiler warnings in tests
* test fixes
* don't include genesis in finality checking
* change snapshot test chain building logic
* minor refactorings
* fetch epoch transition based on parent, fix divide-by-zero in SimpleList
* fix formatting
* fix ABIs and finality checking in snapshot restoration
* encode signal number in proof
* create more blocks at the end of tests
* update gist to accurate contract code
* test for epoch_transition_for
* fix tests with immediateTransitions parameter
* disable force flag after forcing
* rename ValidatorsChanged to InitiateChange and finalizeSignal to finalizeChange
* a few more validator set tests
* Alias keyethereum to empty for libraries/npm
* Alias long-standing vertx warning to empty
* Alias secp256k1
* remove package-lock.json (not active atm)
* Ethereum Classic Monetary Policy
Create a new parameter `ecip1017EraRounds`. When the block number
passes one era rounds, the reward is reduced by 20%.
See https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1017.md
* Update rewards for uncle miners for ECIP1017
In the monetary policy, the rewards are changed from "up to 7/8 of the
reward" to "1/32 of the reward".
* Fix an off-by-one error in ECIP1017 era calculation
According to
https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1017.md,
when in block number 5,000,000, it should still be in Era 1 (which in
our code `era == 0`). So we need to check whether the `rem` equals to
zero and act accordingly when calculating the era.
* `ecip1017_era_rounds` missing from EthashParams when run in build bot
* strip out ecip1017_eras_block_reward function and add unit test
* add a simple test for is_push so that every small utility has a corresponding unit test
* split evm/factory.rs into two files as the TODO suggests
* style fixes according to review comments
* header back-references for on demand
* initial back-reference implementation for on demand requests
* answer requests from cache
* answer requests from cache, add tests
* strongly typed responses for vectors of homogeneous requests
* fix fallout in RPC without optimizing
* docker builds current branch instead of cloning the repo
* moved ADD command right before RUN cd parity in Dockerfiles
* update docker/README.md
* removed --no-cache from docker/README.md
* Adding CLI option for port shift and unsafe expose.
* Fixing IPC path.
* Fix hosts when attempting to expose on all interfaces.
* Fixing test.
* Fix typo.
* move native_contracts ABIs to JSON files, add urlhint
* port hash-fetch to futures, fix tests
* fix dapps compilation, defer async port to later
* activate dapps server in the light client
* better formatting
* 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
* Split chip rendering from input
* Slider component
* Render Chip without MUI
* Adjust InputChip styling
* Remove mui chip input
* Remove mui-chip-input from build
* Convert input to sui
* 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
* remove enc/dec session on master node
* lost file
* pass weak instead of arc
* Remove mui IconButton
* Token type selection
* Convert RadioButtons
* RadioButtons consistency
* Import @parity/ui
* Import @parity/ui
* Explicit name for RadioButtons
* Convert to semantic Radio
* 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
* Better errors in contract dev
* Use RAW Git instead of Github Raw URLs (better CORS support)
* Network first for Solc list
* Don't use importScript n Worker // update rawgit to use CDN
* 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
* 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
* added some tests
* fixed typo
* Poll details based on nodeKind
* Delay long polling when public/light
* Reload UI when nodeKind changed
* Fix tests (not using dispatch, reload instead)
* PR grumbles/cleanups
* Remove ETH filter
* Remove unused Blockchain reducer+actions
* Simpler Token updates and fetching
* Cleanup use of balances
* Cleanup of balances
* Cleanup of Balances
* Linting
* Update List Component
* Separate tokens from balances
* Refactoring balance fetchin and storing - Part I
* Linting
* Better ETH token description and use
* Working Transfer with new logic
* Add debugging
* Querying the tokens filter on new block
* Fixing the tests - PART I
* Fix txCount
* easy to use conversion from and to string for ethstore::Crypto
* ethstore uses tempdir instead of devtools
* ethstore does not depend on ethcore-util
* 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
* 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
* fix after merge
* fix after merge
* moved contract to native-contracts lib
* 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
* finally fixed <odd>-of-N-scheme
* temporary commented test
* 1-of-N works in math
* scheme 1-of-N works
* remove unnecessary unsafety
* fixed grumbles
* fix grumbles
* lost files
* Dapps server as a middleware.
* Dapps RPC - Work in Progress
* Merging Dapps and RPC server.
* Fast HTTP server configuration.
* Bump jsonrpc
* Fixing test target
* Re-implementing commented-out tests.
* QR code scanning in-place
* QrScan component
* Update tests
* s/store/createStore/ in props
* Create of actual accountsInfo entry
* Exteral/hardware forget, no password change
* Add external accounts to accounts list
* Render external accounts in section (along with hw)
* Manul test bugfixes
* Display Qr code for tx signing
* Align QR code
* Hints for QR operations
* Generate actual qr codes based on tx data
* Add leading 0x if not found
* Update tests for 0x leading addition
* from & rpl without leading 0x
* Auto-detect QR code size (input length)
* Confirm raw
* WIP (lots of logging)
* WIP
* Chain-replay protection
* Readability
* Re-add r: chainId
* s = 0, r = 0, v = chainId
* Update eth_signTransaction to send transaction object
* And it actually works.
* Externalise createUnsigned/createSigned
* Check for nonce updates (future: subscriptions)
* Allow gas overrides
* Expose formatted condition
* Extract calculation (cap at 40)
* Remove debug log
* Fix rename linting
* Allow for signing hash & rlp (App support forthcoming)
* WIP
* User original qrcode-generator package
* Complete hash + rlp signing
* Accurate QR code size calculation
* Simplify type calculation
* R-eactivate current mobile interface (TODO for new)
* Move napa to dep
* Allow external accounts visibility in dapps
* Allow napa install on CI
* Allow new signTransaction & signTransactionHash functionality
* updated docopt, env_logger, semver and regex crates
* updated parking_lot to 0.4
* fixed compiling on linux
* updated igd to 0.6
* updated jsonrpc
* fixed regex related compiler error on linux
* return errors on database corruption
* fix tests, json tests
* fix remainder of build
* buffer flow -> request credits
* proving state backend
* generate transaction proofs from provider
* network messages for transaction proof
* transaction proof test
* test for transaction proof message
* fix call bug
* request transaction proofs from on_demand
* most of proved_execution rpc
* proved execution future
* initial request definitions
* RLP encoding and decoding for requests
* proofs of non-existance in ProvingBlockChainClient
* new requests in provider.
* encode and decode responses
* complete initial request changes
* handle request packet in LightProtocol
* handle response packets
* implement requesting from
* re-do cost table
* get tests compiling
* fix cost table RLP encoding
* roundtrip tests for request types
* request builder tests
* move request_builder -> request::builder
* get network tests working
* return only complete headers responses
* request builder improvements
* New version of jsonrpc.
* split request filling into fill,complete
* Better invalid encoding messages
* Fixing deprecated methods of tokio_core
* use PIP messages in on_demand, old API
* migrate oneshot::complete to send in on_demand
* get on_demand tests to compile
* port ethsync to PIP messages
* adjust to minor on_demand API changes in RPC
* Using dedicated branch for jsonrpc
* Bump
* Don't show fee warning when there is none
* Hide Warning in Registry onclick
* Use the default account in the Registry
* Fix Etherscan links in Regsitry
* Update for case where account === undefined
* Update tests to not mask account === undefined
* default account = {} where undefined (thanks @tomusdrw)
* fixed naming of rlp modules
* RlpStream cleanup
* appending short rlp lists (0...55 bytes) is 25% faster
* RlpStream does not use bytes module, nor trait Stream
* removed unused code from rlp module
* compiling ethcore-util with new rlp serialization
* compiling parity with new rlp serialization
* fixed compiling ethcore-light with new rlp serialization
* fixed compiling ethsync with new rlp serialization
* removed redundant comment, print
* removed redundant double-space
* replace usage of WriteBytesExt with ByteOrder
* 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
* First little bits for chain-selection.
* Provide RPCs and get settings through to user defaults.
* Hasty stash.
* Fix updater accidentally redownloading.
* Finish up.
* Add JS tests.
* Hypervisor should never run a binary modified before itself.
* Style.
* Help tweak.
* Fix test compile.
* Fix JS test
* Build fix for tests.
* Revert default chain name
* Another test
* Use spec name via client.
* Fix mock up.
* whitespace
[ci:skip]
* whitespace
[ci:skip]
* remove exit/restart endpoints.
* Add React Hot Loader to DappReg dapp
* Updated colours
* Add DappCards
* Dapp Modal with manifest displayed
* Add input to the Dapp Modal
* WIP // Editing a Dapp
* Clean-Up
* Linting
* CleanUp and separate dapp from dappS
* Semi-working updates
* Working Editing of a Dapp
* OCD
* Linting
* Add a Dapp -- WIP
* Register a new Dapp
* WIP Dapps
* Working update / delete / register
* Better promises
* Working updates for DappReg
* Fully functional again !
* Generic Card Component
* Dashed Register Card
* Cleanups
* Cleanups
* Add Actions to Modal
* Clean-Up
* Better Close Icon
* Single place for Registry version // Fetch meta-data from Registry
* Fixing test
* Fix saving changes in dapp reg
* PR Grumbles - Part I
* PR Grumble - Part I
* PR Grumble - Part II
* DappReg Contract owner can delete dapps
* Added React Hot Reload to dapps + TokenDeplpoy fix
* Fixes to the LocalTx dapp
* Don't send the nonce for mined transactions
* Don't encode empty to values for options
* make validator set aware of various states
* fix updater build
* clean up contract call
* failing sync test
* adjust tests
* nicer indent [ci skip]
* revert bound divisor
* Adjust selection colours to match with mui
* allow -> disable (simplify selections)
* Only use top-border
* Overlay selection line
* Slightly more muted unselected
* Restore address icon
* Update Wallet Version
* Update Wallet Library
* Update Wallets Bytecodes
* Typo
* Separate Deploy in Contract API
* Use the new Wallet ABI // Update wallet code
* WIP .// Deploy from Wallet
* Update Wallet contract
* Contract Deployment for Wallet
* Working deployments for Single Owned Wallet contracts
* Linting
* Create a Wallet from a Wallet
* Linting
* Fix Signer transactions // Add Gas Used for transactions
* Deploy wallet contract fix
* Fix too high gas estimate for Wallet Contract Deploys
* Final piece ; deploying from Wallet owned by wallet
* Update Wallet Code
* Updated the Wallet Codes
* Fixing Wallet Deployments
* Add Support for older wallets
* Linting
* Render Dapps via SectionList
* Initial rendering of accounts via SectionList
* Width vars
* Allow classNames in certifications & tags
* Overlay of info on hover
* Adjust hover balances
* Large owner icons (align with vaults)
* Consistent block mined at message
* Attach ParityBackground to html
* Adjust page padding to align
* Lint fixes
* Link to different types of addresses
* Make content parts clickable only (a within a)
* Force Chrome hardware acceleration
* Trust the vendors... don't go crazy with transform :)
* Use faster & default transitions
* Add VaultMeta edit dialog
* Updated (WIP)
* Meta & password edit completed
* Added SelectionList component for selections
* Use SelectionList in DappPermisions
* AddDapps uses SelectionList
* Fix AccountCard to consistent height
* Display type icons in creation dialog
* Complimentary colours
* Convert Signer defaults to SelectionList
* Fix Geth import - actually pass addresses through
* Work from addresses returned via RPC
* Display actual addresses imported (not selected)
* Update tests to cover bug fixed
* Prettyfy Geth import
* Description on selection actions
* SelectionList as entry point
* Update failing tests
* Subtle selection border
* Styling updates for account details
* Add ModalBox summary
* AddAddress updated
* Display account vault information
* Allow invalid addresses to display icons (e.g. vaults)
* Display vault on edit meta
* Convert VaultAccounts to SelectionList
* Allow editing of Vault in meta
* Add tests for SectionList component
* Add tests for ModalBox component
* Add tests for VaultSelector component
* Add vaultsOpened in store
* Add ~/ui/Form/VaultSelect
* WIP
* Fix failing tests
* Move account to vault when selected
* Fix circular build deps
* EditMeta uses Form/VaultSelect
* Vault move into meta store (alignment)
* Re-apply stretch fix
* Display vault in account summary
* Add busy indicators to relevant modals
* Auto-focus description field (aligns with #4657)
* Remove extra container (double scrolling)
* Remove unused container style
* Apply scroll fixes from lates commit in #4621
* Remove unneeded logs
* Remove extra div, fixing ParityBar overflow
* Make dapp iframe background white
* Stop event propgation on tag click
* ChangeVault component (re-usable)
* Use ChangeVault component
* Pass vaultStores in
* Icon highlight colour
* Tag-ify vault name display
* ChangeVault location
* Bothced merge, selector rendering twice
* Value can be undefined (no vault)
* Close selector on Select bug
* Fix toggle botched merge
* Update tests
* Add Vault Tags to Account Header
* Close when clicking anywhere on body pane
* Allow click to propagate on address click
* Rename noCopy -> allowAddressClick
* Handle i18n strings in input
* Close on pasted addresses (valid entry)
* allowAddressClick default
* Don't do onClick on AccountCard if text is selected
* Reset filter value on close for address selection
* Better close on click for AccountSelection
* Add info on forks.
* Add new registry ABI
* Import registry2 & fix exports
* Select ABI based on code hash
* Render new event types (owner not available)
* New registry.
* Rename old chain.
* Fix test.
* Another fix.
* Finish rename.
* state backend trait mirroring state_db API
* minimal state backend trait
make state module public
* fix json tests
* return errors on database corruption
* fix tests, json tests
* fix remainder of build
* add Backend bound on state
* Render Dapps via SectionList
* Initial rendering of accounts via SectionList
* Width vars
* Allow classNames in certifications & tags
* Overlay of info on hover
* Adjust hover balances
* Large owner icons (align with vaults)
* Consistent block mined at message
* Attach ParityBackground to html
* Adjust page padding to align
* Lint fixes
* Link to different types of addresses
* Make content parts clickable only (a within a)
* Force Chrome hardware acceleration
* Trust the vendors... don't go crazy with transform :)
* Use faster & default transitions
* Remove extra container (double scrolling)
* Remove unused container style
* Make dapp iframe background white
* Stop event propgation on tag click
* Shorten menu items (accounts)
* Shorten menu items (addresses)
* Shorten menu items (contracts)
* Shorten menu items (account)
* Shorten menu items (address)
* Shorten menu items (contract)
* Auto-focus & perform default action
* Auto-focus & default action
* Auto focus for first fields (create account)
* Clear phrase & auto-focus field
* Auto-focus name fields
* Add autoFocus (Add Address)
* autoFocus address (Add Contract)
* Auto focus name field
* Auto-focus name field for EditMeta
* Auto-focus modifications (WalletSettings)
* Verification auto focus
* typo
* Double-up on keys
* TEMP: Bind to 0.0.0.0, don't check Origin
* More CLI options for IPFS
* CORS and Hosts filtering
* Allow current interface as origin
* Correctly handle CORS settings
* fix grumbles
* translation stings copied from _default to nl
* First batch of nl translations
* Second batch of nl translations
* Syntax fix
* include new nl translation files to index
* Fix Geth import - actually pass addresses through
* Work from addresses returned via RPC
* Display actual addresses imported (not selected)
* Update tests to cover bug fixed
* Default accounts setting - account provider
* RPC support for default accounts
* Updating JS code
* Rename whitelist to addresses
* Set the defaults using default, allowing for null/full lists
* Update failing tests (after merge)
* Fix merge with wrong rpc call names
* One account needs to be selected
* Add account balance display from ParityBar
* Ellipsis with title
* Balance display in Dapp permissions
* Add balance to vault account selector
* Add key prop to accounts in Vault
* Fix failing test (missing redux prop)
* Create new column family for local node info
* remove DBTransaction::new reliance on DB
* KeyValueDB trait
* InMemory KeyValueDB implementation
* journaldb generic over KVDB
* make most of `ethcore` generic over KVDB
* fix json tests compilation
* get all tests compiling
* implement local store (just for transactions)
* finish local store API, test
* put everything into place
* better test for skipping bad transactions
* fix warning
* update local store every 15 minutes
* remove superfluous `{}`s
This is done by requests sending CID with raw binary codec (0x55).
Note: this functionality is exactly the same as fetching state-trie
due to how db internals work in Parity atm.
* Explicitly set seconds/milli to 0
* Use condition time & block setters consistently
* Fix failing test
* test for 0 ms & sec
* It cannot hurt, clone date before setting
* Prettier date test constants (OCD)
* Build script to pull i18n into i18n/_default
* Fix header
* Current strings as extracted
* details_windows without prefix
* clean before build
* Alwasy extract babel strings
* clean & run build before extraction
* Update settings messages
* Put back template string (PR comment)
* PR comment cleanups & logging
* Less complicated string type check (PR comment)
* Remove node cache to extract all keys (Thanks @ngotchac)
* Merge in defaults from i18n/en (Comment by @h3ll0fr13nd)
* Unique index keys only
* Update with latest master strings
* _.defaultsDeep (Thanks to @dehurst)
* Use to-source for string formatting
* Sync with toSource output on latest master
* Updated to use/output sorted objects
* Home entry point (basics)
* WIP store for web
* Add DappUrlInput component
* Updated tests
* WIP store update
* Adjust styling
* Add home tab
* Collapse first/last without extra divs
* Navigation actually navigates
* styling
* Encoding of ethlink.io URLs
* encodedUrl setup
* base58 encoded URLs
* Added decoding, updated tests to Parity-compliant
* Base32 (synced with Rust implementation via tests)
* Split URL into 63 character chunks
* Fix store test
* Cleanups
* s/ethlink/dapplink/
* Display app navigation & histroy
* Start on /accounts (for now, until expanded fully)
* Update tests
* ethlink.io -> web3.site
* Basic list layout
* Store history on navigation
* Show Accounts & Dapps
* Add skeleton for DappIcon (WIP)
* DappIcon WIP
* DappIcon in place
* Split into maneable sub-components
* WIP
* Tests for views/Home
* Swap default entry-point to /home
* Expose registry.get via lookupMeta
* Add getEntry interface, fix instance retrieval (with tests)
* Add news display component
* Add tests for added contracts/registry methods
* Fix GHH test refactoring
* render news via SectionList
* News items store directly
* Images
* News & Urls has new layout
* Convert remainder
* First run-through of MVP for SectionList
* Update tests
* Deploycontract should not override global p styles
* Allow styles overrides for head & body
* Adjust layout styling
* revert Container>flex
* Adjust sizes of history items
* Cleanups
* HistoryStore for tracking relevant routes
* Default route is still /accounts
* Fix tests
* Update 2015-2017
* Add lookupMeta & tests
* Add getEntry & tests
* Split Dapp icon into ui/DappIcon
* Update copyright dates
* Encoding for *.web3.site urls
* Dapp history retrieval
* Grow to only 40% on hover
* Update description
* Add DappUrlInput component
* Update Web views with store
* Update spec description
* Update spec description
* edited url does not allow in-place store edits
* Use /web/<hash> urls for iframe
* Removed (now) unused _list.css
* Mistamtched merge fixed
* Tab split (WIP)
* Split Tab component
* Update tests after merge
* typo
* Remove background !important
* Set item width to parent
* Set width, remove overflow-x: hidden
* Align hover overlays
* Container defaults to some opacity
* Display history from listRecentDapps
* Override styles for a tags
* Open URLs in new window when extension is available
* Fix tests after update
* AccountCard width 100%
* Re-add opening correct url in tab
* Cleanup link rendering
* Remove hardcoded news URL
* pre-merge
* Extra padding at Home bottom (Pr grumble)
* Match js-vaults stretch
* s/Web Apps via URL/Web Apps/ (PR grumble)
* Store recent wallets (PR grumble)
* Simplify inline style matching (PR comment)
* Add store for new retrieval
* Add missing observer
* Auto-link based on account type
* Fix UI overlaps
* Extra spacing
* Only show account when accountInfo is available
* Align timestamp line-heights
* Fix tests
* Update tests
* Really fix failing test (check for Connect(Account))
* Fix address non-ellipsis on Wallet view
* Add warning if daily limit has been reached
* Add OOG warnings to TxHash
* Fixes to the Warning
* Added stringified version of the changes
* Add wallet link for notifications
* Fix tests
* Use Formatted Messages
* React Intl
* s/ui.walletSettings/walletSettings in React Intl
* CHT builder and prover
* use CHT abstraction in provider
* hide CHT internals from header chain
* fix itertools conflict by updating all to 0.5
* cht proof checker, use it in on_demand
Currently, the unsecure `ws://` scheme is hardcoded. With this change,
the scheme will dynamically change to the secure `wss://` when the
frontend is requested from an HTTPS origin.
* Web-domain based routing
* Support base32-encoded urls
* Proper support for non-domain based routing
* Handling long domain names
* Switching to web3.site
* Encoding for *.web3.site urls
* Add DappUrlInput component
* Update Web views with store
* Update spec description
* Update spec description
* edited url does not allow in-place store edits
* Fixing dapps access on 127.0.0.1:8180
* Use /web/<hash> urls for iframe
* Redirecting to parity.web3.site
* Disabling the redirection
* Allow Portal to take title & buttons props
* Fix tests
* Portal consistent in screen center
* Allow hiding of Close (e.g. FirstRun usage)
* Set overflow style on body based on open
* Don't lock scroll for child popups (overlaps)
* Override buttons to be white
* Expose ~/ui/Modal/Title as re-usable component
* Use ~/ui/Title to render the Title
* Update tests
* Added a portal example with buttons and steps
* Address PR comments
* Fix AddressSelect with new container withing container
* Move legend to "buttons"
* AddressSelect extra padding
* WIP
* WIP (with lint)
* Update ui/RadioButtons
* transaction.condition
* Date & Time selection in-place
* Swap to condition-only
* Fix tests, align naming
* Pick error properly from validation
* Update tests
* condition: time sent withough ms
* Format numbers as base-10
* override popup styles (zIndex)
* Pass condition to signer
* Update expectation (failing test typo)
* Adjust min/max height for expanded bar
* Fix address display
* Fix name display
* Number inputs for gas/gasPrice/blockNumber
* Default blockNumber to 1 (align with min setting)
* Update tests with min value
* Add Block Number
* Fix failing tests (after blockNumber intro)
* Extended Markdown generator
* Synced and extended all JSON-RPC interfaces
* Fix linter errors
* Format `parity_listAccounts` output in API
* typo
* Check if interfaces are synced in JS spec tests
* Fixing missing interface errors
* Better #[rpc] attribute parsing
* Fixed RPC JS spec tests
* More examples
* Refactored how dummy data appears in examples
* Complete trace docs!
* fix typo
* Less copy-paste
* All the docs!
* Fix differences between CallRequest and TransactionRequest
* Fix differences between CallRequest and TransactionRequest
* Missing examples
* Grumble fixes
* Portal
* Allow Portal to be used in as both top-level and popover
* modal/popover variable naming
* export Portal in ~/ui
* Properly handle optional onKeyDown
* Add simple Playground Example
* Fix whitespace.
* Fix post sign.
* Fix message.
* Fix tests.
* Rest of the problems.
* All hail the linter and its omniscience.
* ...and its divine omniscience.
* Grumbles and wording.
* Tests for RPC
* Extracting dapp_id from Origin and x-parity-origin
* Separate type for DappId
* Persistent tracking of recent dapps
* Fixing tests
* Exposing dapp timestamps
* Fixing import to work on stable
* Fixing test again
* array chunking utility
* add SectionList component
* Add TODOs to indicate possible future work
* Add missing overlay style (as used in dapps at present)
* flush work
* flush work
* flush work
* flush work
* generalized notifiers
* general setup with modules
* general setup with modules
* all binded
* catch up with master
* all dependencies injected
* stratum another up
* tcp update
* submitwork routine
* finalize & fix warnings
* merge bugs, review fixes
* merge bugs, review fixes
* new cli mess cleanup
* usage.txt swap
* flush work
* cli adopt
* compilation with new cli sorted
* subid space in json
* serialization issues
* grumbles addressed
* more grumbles
* remove last_work note for now
* fix compilation
* fix tests
* merge bugs
* no obliged ipc
* moving notifiers
* no optional feature now
* refactored again
* working on tests
* refactor to new tcp/ip
* stratum lib ok
* ethcore crate ok
* wip on tests
* final test working
* fix warnings, \n-terminated response
* new compatibility
* re-pushing work once anybody submitted
* various review and general fixes
* reviewe fixes
* remove redundant notifier
* one symbol -> huge bug
* ensure write lock isn't held when calling handlers
* extern declarations moved
* options to stratum mod, SocketAddr strongly-typed instantiation
* Minor style fix.
* Whitespace and phrasing
* Whitespace
* Add esjify for mocha + ejs
* First pass through, intl + basic smoketests
* Create store
* Update for renames
* Pass store around
* createType into store
* Move stage into store
* Update labels
* Define stages
* address into store
* Add @observer
* Retrieve name from store
* Store phrase in store
* isWindowsPhrase into store
* gethAddresses to store
* Store manages geth addresses
* passwordHint into store
* Fix build
* rawKey into store
* import json files
* name set direct from component
* No parent change callbacks
* canCreate from store
* createAccounts into store
* expand create tests
* Windows phrase testcases
* Properly bind newError
* FirstRun use of new CreateAccount
* Add fix & test for selectedAddress match
* Call into store from props
* onChangeIdentity fix & test
* Phrase set fix & test
* RecoveryPhrase tested manually (issues addressed via tests)
* Hex import manual test (& tests added for errors)
* New eslint update fixes
* grumble: set default type from store (with test)
* grumble: pass copy of accounts (observable injection)
* grumble: Summary owners can be array or array-like
* remove register_account_provider
* build rpc module
* new dummy client
* common EngineSigner struct
* from -> into
* initial report via call
* separate safe from regular contract
* transact_contract
* fix build
* return Signature, docs
* add sign method to some engines
* add safeContract spec
* update specs to new contracts
* use AuthorityRound for contract spec
* add more reporting
* add reporting test
* use gas floor
* shorter
* prune states based on memory param
* pruning memory CLI and usage in sync
* return purged value from memorydb
* calculate memory used incrementally in overlayrecentdb
* refactor shared history pruning code in client
* Fixed usage alignment
* journal_size function for fast memory calculation
* remove old lint silencer
* dispatch requests only to peers with higher TD
* dynamic target for sync rounds
* use round pivots instead of frames, fix test
* fix total difficulty calculation for test client
* fix broken reorg algorithm
* fork test, fix ancestor search
* Minor typo to ensure it updates only when synced.
* Fix deadlock.
* Skip unneeded arg in making list.
* Allow auto-restart even when not running an update.
* Fix trace.
* Update update info on each loop.
* Fix build.
* Shutdown all sockets
* Remove superfluous use.
* gas_limit for new blocks will divide evenly by 13
* increased PARITY_GAS_LIMIT_DETERMINANT to 37
* separate method for marking mined block
* debug_asserts(gas_limit within protocol range)
* round_block_gas_limit method is now static
* made round_block_gas_limit free-function
* multiplier->multiple [ci skip]
* try to fix freaking test
* fix subscribeToEvents test
This fix is a workaround. I would have used sinon fake timers, but I
couldn't get them to work.
* subscribeToEvent test: simplify code
* verification: check if server is running
See also ethcore/email-verification#67c6466 and ethcore/sms-verification#a585e42.
* verification: show in the UI if server is running
* verification: code style ✨, more i18n
* fix i18n key
* Return 0 instead of error with out of gas on estimate_gas
* Fix stuff up.
* Another estimate gas fix.
* Alter balance to maximum possible rather than GP=0.
* Only increase to amount strictly necessary.
* Improvements and optimisations to estimate_gas.
- Introduce proper error type
- Avoid building costly traces
* Fix tests.
* Actually fix testsActually fix tests
* Return 0 instead of error with out of gas on estimate_gas
* Fix stuff up.
* Another estimate gas fix.
* Alter balance to maximum possible rather than GP=0.
* Only increase to amount strictly necessary.
* make on_connect/disconnect public
* free flow params constructor
* Shared ownership of LES handlers
* light provider impl for test client
* skeleton for testing light sync
* have test_client use actual genesis
* fix underflow in provider
* test harnesses for lightsync
* fix tests
* fix test failure caused by test_client changes
* Add Signer Key Derivation in Service Worker
* Several fixes throughout the UI
* Hint for external account // working Worker
* Add Worker state change
* PR Grumbles
* Add contract block creation to metadata
* Display mined block for contract on Contracts view
* Better use of Summary for Accounts
* Add sorted by mined block for contracts
* Proper Block Number sort // display in contract page
* PR Grumble
* Linting issues
* triedb cleanup
* factor out common portion of trie query
* allocate far fewer times in node decoding
* fix bench compilation
* introduce OwnedNode variant to make iter fast again
* generalize recorder trait to Query
* decode trie outputs cost-free in state
* test for passing closure as query
* Bring back Uint8Array sha3 support
* Added SHA3 test with HEX encoding
* Rename hex2Ascii => hexToAscii
Add tests or the api/util/format functions
Use js-sha3 for sha3 with hex encoding support
* Adding Uint8Array test
* Fixing Transaction import
* Fix mutable options in Contract API
* Add Swarm hash and meta data from Solidity
* Updates tests for contract deployment
* Add test for deploy without constructor Params
* WIP
* WIP store
* Store in-place
* WIP tests
* Store completed
* Expand option tests for events
* Fix & test for errors found in manual testing
* Add missing @observer (rookie mistake)
* Fix intl formatting error (completed step)
* Pass store to ErrorStep, test all stages for components
* Add warning messages (e.g. no price found)
* Fix typo
* Fix null account render issue, add tests
* Add tests for #3999 fix (merged in #4000)
* Only include sinon-as-promised globally for mocha
* Move transactions state into tested store
* Add esjify for mocha + ejs (cherry-picked)
* Extract store state into store, test it
* Use address (as per PR comments)
* Fix failing test after master merge
* Fixes to the Registry dApp
* WIP Add Owner Lookup
* Proper sha3 implementation
* Add working owner lookup to reg dApp
* Add errors to Name Reg
* Add records error in Reg dApp
* Add errors for reverse in reg dApp
* PR Grumbles
* Fixed hint in Address Select + Wallet as first-class-citizen
* Separate Owned and not Owned Wallets
* Fix balance not updating
* Fix MethodDecoding for Contract Deployment
* Fix TypedInput params
* Fix Token Transfer for Wallet
* Small change to contracts
* Fix wallets shown twice
* Fix separation of accounts and wallets in Accounts
* Fix linting
* Execute contract methods from Wallet ✓
* Fixing linting
* Wallet as first-class citizen: Part 1 (Manual) #3784
* Lower level wallet transaction convertion
* Fix linting
* Proper autoFocus on right Signer input
* PR Grumble: don't show Wallets in dApps Permissions
* Add postTransaction and gasEstimate wrapper methods
* Extract Wallet postTx and gasEstimate to utils + PATCH api
* Remove invalid test
It's totally valid for input's length not to be a multiple of 32 bytes. EG. for Wallet Contracts
* Merge master
* Fix linting
* Fix merge issue
* Rename Portal
* Rename Protal => Portal (typo)
* Moving logs to separate, testable function
* Adding test
* Fixing log index
* Adding transaction log index
* Fixing rpc tests
* Making interface of a bit cleaner.
* Move AccountSelect values to MobX store
* Mail registry + small fixes
* Add Registry to AddressSelect lookups + Nav fixes
* Fix linting
* PR Grumbles
* Fix tests and propTypes
* Splits (WIP)
* Expand getters & setters
* Initial abi type set
* Expand
* Don't rely on passed api
* Store tests in place
* Allow RadioButtons to accept MobX arrays
* Fixes for manual testing
* owning views of blockchain data
* port blockchain and client traits to owning views
* fix ethcore tests
* use strong headers and bodies in ethcore_light
* port ethsync to use owning views
* port rpc to owning views
* port parity informant and blockchain export
* Fetch certifiers once + on new Logs
* Linting
* BadgeReg First Query
* Rightly fetching badges on page change
* PR Grumbles
* Only fetch certifiers onces
* Dapps web
Conflicts:
dapps/src/apps/fetcher.rs
dapps/src/handlers/fetch.rs
* Rewriting fetch
* Parity-wide fetch service
* Obey the limits and support cancellation.
* Removing temporary files.
* Actually use Fetch for dapps
* Re-implementing file fetching to avoid temporary files.
* Serde to 0.8.19
* Fixing content & dapps fetch
* Serving web content and injecting scripts
* Don't wait for old content, start a new download
* Supporting timeouts and query
* Simple GUI for the browser
* Proxy tokens validation
* Recovering from invalid web-based requests
* Remember last visisted URL
* Removing unused variables
* Addressing review comments
* Setting default account in web3
* Adding WebBrowser dapp to the list
* Actually prune old entries when generating new token
* Allow sync reorg up to pruning history size
* Peer difficulty tracking
* Abort downloading block if received with NewBlock
* Set pruning history to 1200
* Renamed history size field
* Allow input to receive FormattedMessage errors
* Only do existence checks on phrases & passwords
* Add missing import
* Remove existence checks, display security reminder
* Add Loader to Transactions
* Add Method Decoding Store (better fetching of methods)
* Load locally stored ABI in MethodDecodingStore
* Fixes UI glitches along the way
* Linting
* Add method decoding from User Contracts
* Have a singleton DappsFetcher so we don't realod them at each page load
* Better dapps Fetcher : event based listener
Update on meta change
* Remove dapps fetcher => all in singleton dapps store + utils
* Modify header to Parity
* light: basic transaction pool
* light: network timeouts
* fix dead code warnings
* les: update to new message format
* fix indentation
* les: hash or number in headers req, not both
We might want to bundle the code in `3rdparty`.
React & presentational components don't belong in there. At the
same time, the terms of service are strictly related to the use
of these external services. We decided to not bundle them, but
still keep them in a file called `terms-of-service.js`.
The commit also moves the "how it works" section into the
presentational part in `modals/Verification`.
* Fix contracts execution will fallback function
* Fix contract execute modal
* Working execute from Contract
* Don't dupliacet events
* Gas * 1.2 in wallet confirmations
The modal got really crowded and the preparation step had
only been shown for fractions of a second anyways. The
"loading" message is now part of the next step.
* WIP Sending tokens in multi-sig wallet
* Working Token transfer for multi-sig wallet #3282
* Add operation hash to transfer modal
* Add existing wallet from address #3282
* Wallet delete redirect to Wallets/Accounts #3282
* Rightly check balance in Transfer // Get all accounts balances #3282
* Fix linting
* Better Header UI for Wallet
* Use the `~` webpack alias
* Use Webpack `~` alias
* Add `ETH` format to number typed input
* Fix wallet creation hint && eth input type
* Update dailylimit #3282
* Fix too long copied message
* WIP Wallet settings modification #3282
* WIP edit contract parameters #3282
* Edit Wallet parameters #3282
* Don't show wallets if none
* Fix Transfer for Wallet #3282
* Optimized version of contract code
* Fix wrong max in Wallet creation // Round gas in API
* Enable panic=abort
* Update remaining crate versions to 1.5
* Run tests in release mode
* Enable panic=abort for release profile only
* Added travis_wait
* Travis timeout set to 40
* WIP Sending tokens in multi-sig wallet
* Working Token transfer for multi-sig wallet #3282
* Add operation hash to transfer modal
* Add existing wallet from address #3282
* Wallet delete redirect to Wallets/Accounts #3282
* Rightly check balance in Transfer // Get all accounts balances #3282
* Fix linting
* Better Header UI for Wallet
* Use the `~` webpack alias
* Use Webpack `~` alias
* Wallet Creation Modal #3282
* Name and description to Wallet #3282
* Add Wallet to the Account Page and Wallet Page #3282
* Fix Linting
* Crete MobX store for Transfer modal
* WIP Wallet Redux Store
* Basic Details for Wallet #3282
* Fixing linting
* Refactoring Transfer store for Wallet
* Working wallet init transfer #3282
* Optional gas in MethodDecoding + better input
* Show confirmations for Wallet #3282
* Order confirmations
* Method Decoding selections
* MultiSig txs and confirm pending #3282
* MultiSig Wallet Revoke #3282
* Confirmations and Txs Update #3282
* Feedback for Confirmations #3282
* Merging master fixes...
* Remove unused CSS
* possible fix for #3686
* queue: simplify conclusion, don't block on joining
* queue: park verifiers with timeout to prevent race
* more robust verification loop
* queue: re-introduce wait for verifier joining
* Adds aliases to Webpack Build
* Use `ui` Webpack alias
* Use `views` alias
* Use `modals` aliase
* Use `providers` aliase
* Use `contracts` aliase
* Use '~' aliase
* from `ui` to from `~/ui`
* from to from
* from `modals` to from `~/modals`
* from `providers` to from `~/redux/providers`
* from `contracts` to from `~/contracts`
* Updated Webpack App config
* Better Token Select in Transfer > Details
* Better Autocomplete
* Crete MobX store for Transfer modal
* Remove unused var
* Update Webpack Conf
* Small changes...
* Optional gas in MethodDecoding + better input
* New Contract `getAll` method // TxList Row component
* Method Decoding selections
* Rename `getAll` to `getAllLogs`
* sms verification: Certifications component
* sms verification: actions & reducers for certifications
* sms verification: put Certifications component into place
* sms verification: show certification icons
* sms verification: show certification titles
* sms verification: default icon for certifications
* sms verificaiton: lint issue 👕, fix testnet detection
The sms verification store got created when `isTestnet` (from the
Redux state) was still `undefined`.
* move certification helpers into middleware file
* connect Certifications to Redux
* don't pass certifications as prop
* move default certification icon into assets
* separate file for BadgeReg.sol
* don't pass certifications as prop
* Fix import name
* make BadgeReg a class
* make certifications middleware a class
* Certifications: pass in certifications of account
* Initial fetch of local transactions
* Container allows for title specification
* Introduce TxList component
* Display local transactions in signer list
* Simplify
* Pass only hashes from calling components
* Simplify no pending display
* Render pending blocks at the top
* Get rid of time for 0 blocks
* Indeed sort Pending to the top
* Allow retrieval of pending transactions
* setTimeout with clearTimeout
* Don't auto-subscribe for contracts #3240
* Smarter Balance : don't re-instantiate contracts, fetch tokens #3240
* Smarter Balance Tokens fetching (update image when needed) #3240
* Attaching to TokenReg Events instead of fetching for each block #3240
* Unsubscribe from shapeshit... #3240
* Unsubscribe from EthFilter if used once (resolved) #3240
* Remove warning
* PR review fix
* Typo
* Better contract JS API : one subscribe for all #3546
* Fixed test
- checkIfTxFailed & waitForBlockConfirmations are both general-purpose
- checkIfVerified, checkIfRequested & postToServer are sms verification-specific
- fixed imports
- renamed `uiSteps` to `phases` to make the distinction between
actual (tiny) steps and visible UI steps clear
- lookup `requestTx` if request has already been sent
- change code regex to match ethcore/sms-verification@59acb73
* fetch known code from the database during restoration
previously it kept all seen code in memory, leading to
high memory usage by the end of state restoration
* whitespace
[ci:skip]
* test previous code fetch
* Added Token and Wallet ABI in Watch Contract #3126
* Improved ABI Validator #3281
* Select contract type on first screen #3126
* Added types decsription
* Add ABI type to Contract metadata // Custom as default type #3310
* Signer RAW confirmations
* Returning address book as eth_accounts
* UI support for in-browser signing
* Post review fixes
* Adding new methods to jsonrpc
* Fixing eth_accounts
* Deterministic accounts ordering
* Add mobx
* Use mobx store for dapps
* Cleanup hidden reads
* Remove (now) unused hidden.js
* _ denotes internal functions
* s/visibleApps/visible/
* AddDapps now use the mobx store as well
* Move modalOpen state to store
* Simplify
* Complete master merge
* Remove extra indirection
* Remove unneeded check
* Readability improvements
* Remove final debug info
* Load network manifests from the network
* Swallow manifest errors
* introduce fetchManifest
* Add mobx
* Use mobx store for dapps
* Cleanup hidden reads
* Remove (now) unused hidden.js
* _ denotes internal functions
* s/visibleApps/visible/
* AddDapps now use the mobx store as well
* Move modalOpen state to store
* Simplify
* Complete master merge
* Remove extra indirection
* Remove unneeded check
* Readability improvements
* Remove final debug info
* `--mode=off` now works.
* Add Mode::Off as a persistent CLI option.
* "last" not "auto" as default.
* Commit accidentally unsaved file.
* Whitespace
[ci:skip]
* Mode CLI parse fix
* or offline
* Save mode when it gets changed.
* Fix Offline mode
* Fix up mode operations.
* Make passive default, but not overriding.
* Fix test
* Maybe not everyone wants to run an archive node...
* Upon connect, retrieve the available api ports
* Update dapps to load from dappsPort
* Update dapps summary with dappsPort
* Allow proxy to use dappsPort
* Replace /api/ping with HEAD /
* Dynamic port for available apps
* Retrieve content images with dappsPort
* Fix /
* Transfer token dropdown image fix
* IdentityIcon loads images via contentHash
* Update apps fetch to cater for dev & prod
* DRY up 127.0.0.1:${dappsPort} with ${dappsUrl}
A primary goal of OpenEthereum is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
We invite all those who participate in OpenEthereum to help us create safe and positive experiences for everyone.
## 2. Open Source Citizenship
A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.
Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.
## 3. Expected Behavior
The following behaviors are expected and requested of all community members:
* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community.
* Exercise consideration and respect in your speech and actions.
* Attempt collaboration before conflict.
* Refrain from demeaning, discriminatory, or harassing behavior and speech.
* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential.
* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations.
## 4. Unacceptable Behavior
The following behaviors are considered harassment and are unacceptable within our community:
* Violence, threats of violence or violent language directed against another person.
* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language.
* Posting or displaying sexually explicit or violent material.
* Posting or threatening to post other people’s personally identifying information ("doxing").
* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability.
* Inappropriate photography or recording.
* Inappropriate physical contact. You should have someone’s consent before touching them.
* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances.
* Deliberate intimidation, stalking or following (online or in person).
* Advocating for, or encouraging, any of the above behavior.
* Sustained disruption of community events, including talks and presentations.
## 5. Consequences of Unacceptable Behavior
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
Anyone asked to stop unacceptable behavior is expected to comply immediately.
If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).
## 6. Reporting Guidelines
If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. community@parity.io.
Link to reporting guidelines: [CONTRIBUTING.md](CONTRIBUTING.md)
Link to security policy: [SECURITY.md](../SECURITY.md)
Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
## 7. Addressing Grievances
If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify OpenEthereum Technologies with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies.
## 8. Scope
We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business.
This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.
## 9. Contact info
You can contact OpenEthereum via Email: community@parity.io
## 10. License and attribution
This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/).
Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/)
Check out our [Beginner Introduction](https://openethereum.github.io/Beginner-Introduction), [Configuration](https://openethereum.github.io//Configuring-OpenEthereum), and [FAQ](https://openethereum.github.io/FAQ) articles on our [wiki](https://openethereum.github.io/)!
See also frequently asked questions [tagged with `parity`](https://ethereum.stackexchange.com/questions/tagged/parity?sort=votes&pageSize=50) on Stack Exchange.
## Report bugs!
Do **not** open an issue on Github if you think your discovered bug could be a **security-relevant vulnerability**. Please, read our [security policy](../SECURITY.md) instead.
Otherwise, just create a [new issue](https://github.com/openethereum/openethereum/issues/new) in our repository and state:
- What's your OpenEthereum version?
- What's your operating system and version?
- How did you install OpenEthereum?
- Is your node fully synchronized?
- Did you try turning it off and on again?
Also, try to include **steps to reproduce** the issue and expand on the **actual versus expected behavior**.
## Contribute!
If you would like to contribute to OpenEthereum, please **fork it**, fix bugs or implement features, and [propose a pull request](https://github.com/openethereum/openethereum/compare).
### Labels & Milestones
We use [labels](https://github.com/openethereum/openethereum/labels) to manage PRs and issues and communicate the state of a PR. Please familiarize yourself with them. Furthermore we are organizing issues in [milestones](https://github.com/openethereum/openethereum/milestones). Best way to get started is to a pick a ticket from the current milestone tagged [`easy`](https://github.com/openethereum/openethereum/labels/Q2-easy%20%F0%9F%92%83) and get going, or [`mentor`](https://github.com/openethereum/openethereum/labels/Q1-mentor%20%F0%9F%95%BA) and get in contact with the mentor offering their support on that larger task.
### Rules
There are a few basic ground-rules for contributors (including the maintainer(s) of the project):
* **No pushing directly to the master branch**.
* **All modifications** must be made in a **pull-request** to solicit feedback from other contributors.
* Pull-requests cannot be merged before CI runs green and two reviewers have given their approval.
* All code changed should be formated by running `cargo fmt -- --config=merge_imports=true`
### Recommendations
* **Non-master branch names***should* be prefixed with a short name moniker, followed by the associated Github Issue ID (if any), and a brief description of the task using the format `<GITHUB_USERNAME>-<ISSUE_ID>-<BRIEF_DESCRIPTION>` (e.g. `gavin-123-readme`). The name moniker helps people to inquiry about their unfinished work, and the GitHub Issue ID helps your future self and other developers (particularly those who are onboarding) find out about and understand the original scope of the task, and where it fits into Parity Ethereum [Projects](https://github.com/openethereum/openethereum/projects).
* **Remove stale branches periodically**
### Preparing Pull Requests
* If your PR does not alter any logic (e.g. comments, dependencies, docs), then it may be tagged [`insubstantial`](https://github.com/openethereum/openethereum/pulls?q=is%3Aopen+is%3Apr+label%3A%22A2-insubstantial+%F0%9F%91%B6%22).
* Once a PR is ready for review please add the [`pleasereview`](https://github.com/openethereum/openethereum/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+label%3A%22A0-pleasereview+%F0%9F%A4%93%22+) label.
### Reviewing Pull Requests*:
* At least two reviewers are required to review PRs (even for PRs tagged [`insubstantial`](https://github.com/openethereum/openethereum/pulls?q=is%3Aopen+is%3Apr+label%3A%22A2-insubstantial+%F0%9F%91%B6%22)).
When doing a review, make sure to look for any:
* Buggy behavior.
* Undue maintenance burden.
* Breaking with house coding style.
* Pessimization (i.e. reduction of speed as measured in the projects benchmarks).
* Breaking changes should be carefuly reviewed and tagged as such so they end up in the [changelog](../CHANGELOG.md).
* Uselessness (i.e. it does not strictly add a feature or fix a known issue).
## License.
By contributing to Parity Ethereum, you agree that your contributions will be licensed under the [GPLv3 License](../LICENSE).
Each contributor has to sign our Contributor License Agreement. The purpose of the CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen license. You can read and sign our full Contributor License Agreement at [cla.parity.io](https://cla.parity.io) before submitting a pull request.
| <img src="https://gist.github.com/5chdn/1fce888fde1d773761f809b607757f76/raw/44c4f0fc63f1ea8e61a9513af5131ef65eaa6c75/settings.png" alt="Settings Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect" style="width: 32px;"/> | Docker | - | [hub.docker.com/r/openethereum/openethereum](https://hub.docker.com/r/openethereum/openethereum) |
draft:true
prerelease:true
- name:Upload Release Asset - Linux
id:upload_release_asset_linux
uses:actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
with:
upload_url:${{ steps.create_release_draft.outputs.upload_url }}# This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
upload_url:${{ steps.create_release_draft.outputs.upload_url }}# This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
# upload_url: ${{ steps.create_release_draft.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
### Fast, light, and robust Ethereum implementation
# OpenEthereum
[![Join the chat at https://gitter.im/ethcore/parity.js](https://badges.gitter.im/ethcore/parity.js.svg)](https://gitter.im/ethcore/parity.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Fast and feature-rich multi-network Ethereum client.
[![Build Status][travis-image]][travis-url] [![Coverage Status][coveralls-image]][coveralls-url] [![Join the chat at https://gitter.im/ethcore/parity][gitter-image]][gitter-url] [![GPLv3][license-image]][license-url]
[» Download the latest release «](https://github.com/openethereum/openethereum/releases/latest)
**Built for mission-critical use**: Miners, service providers, and exchanges need fast synchronisation and maximum uptime. OpenEthereum provides the core infrastructure essential for speedy and reliable services.
**Requires Rust version 1.12.0 to build**
- Clean, modular codebase for easy customisation
- Advanced CLI-based client
- Minimal memory and storage footprint
- Synchronise in hours, not days with Warp Sync
- Modular for light integration into your service or product
----
## 2. Technical Overview <aid="chapter-002"></a>
OpenEthereum's goal is to be the fastest, lightest, and most secure Ethereum client. We are developing OpenEthereum using the **Rust programming language**. OpenEthereum is licensed under the GPLv3 and can be used for all your Ethereum needs.
## About Parity
By default, OpenEthereum runs a JSON-RPC HTTP server on port `:8545` and a Web-Sockets server on port `:8546`. This is fully configurable and supports a number of APIs.
Parity's goal is to be the fastest, lightest, and most secure Ethereum client. We are developing Parity using the sophisticated and
cutting-edge Rust programming language. Parity is licensed under the GPLv3, and can be used for all your Ethereum needs.
If you run into problems while using OpenEthereum, check out the [old wiki for documentation](https://openethereum.github.io/), feel free to [file an issue in this repository](https://github.com/openethereum/openethereum/issues/new), or hop on our [Discord](https://discord.io/openethereum) chat room to ask a question. We are glad to help!
By default, Parity will run a JSONRPC server on `127.0.0.1:8545`. This is fully configurable and supports a number
of RPC APIs.
You can download OpenEthereum's latest release at [the releases page](https://github.com/openethereum/openethereum/releases) or follow the instructions below to build from source. Read the [CHANGELOG.md](CHANGELOG.md) for a list of all changes between different versions.
Parity also runs a server for running decentralized apps, or "Dapps", on `http://127.0.0.1:8080`.
This includes a few useful Dapps, including Ethereum Wallet, Maker OTC, and a node status page.
In a near-future release, it will be easy to install Dapps and use them through this web interface.
## 3. Building <aid="chapter-003"></a>
If you run into an issue while using parity, feel free to file one in this repository
or hop on our [gitter chat room][gitter-url] to ask a question. We are glad to help!
Parity's current release is 1.3. You can download it at https://ethcore.io/parity.html or follow the instructions
below to build from source.
OpenEthereum requires **latest stable Rust version** to build.
----
We recommend installing Rust through [rustup](https://www.rustup.rs/). If you don't already have `rustup`, you can install it like this:
## Build dependencies
- Linux:
```bash
$ curl https://sh.rustup.rs -sSf | sh
```
Parity is fully compatible with Stable Rust.
OpenEthereum also requires `clang` (>= 9.0), `clang++`, `pkg-config`, `file`, `make`, and `cmake` packages to be installed.
We recommend installing Rust through [rustup](https://www.rustup.rs/). If you don't already have rustup, you can install it like this:
- OSX:
```bash
$ curl https://sh.rustup.rs -sSf | sh
```
- Linux and OSX:
```bash
$ curl https://sh.rustup.rs -sSf | sh
```
`clang` is required. It comes with Xcode command line tools or can be installed with homebrew.
- Windows
- Windows:
Make sure you have Visual Studio 2015 with C++ support installed. Next, download and run the `rustup` installer from
https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe, start "VS2015 x64 Native Tools Command Prompt", and use the following command to install and set up the `msvc` toolchain:
```bash
$ rustup default stable-x86_64-pc-windows-msvc
```
Make sure you have Visual Studio 2015 with C++ support installed. Next, download and run the rustup installer from
https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe, start "VS2015 x64 Native Tools Command Prompt", and use the following command to install and set up the msvc toolchain:
```
$ rustup default stable-x86_64-pc-windows-msvc
```
Once you have `rustup` installed, then you need to install:
* [Perl](https://www.perl.org)
* [Yasm](https://yasm.tortall.net)
Once you have rustup, install parity or download and build from source
Make sure that these binaries are in your `PATH`. After that, you should be able to build OpenEthereum from source.
----
## Quick install
### 3.2 Build from Source Code <aid="chapter-0032"></a>
This will produce an executable in the `./target/release` subdirectory.
This produces an executable in the `./target/release` subdirectory.
Note: if cargo fails to parse manifest try:
## Start Parity
### Manually
To start Parity manually, just run
```bash
$ ./target/release/parity
$ ~/.cargo/bin/cargo build --release
```
and Parity will begin syncing the Ethereum blockchain.
Note, when compiling a crate and you receive errors, it's in most cases your outdated version of Rust, or some of your crates have to be recompiled. Cleaning the repository will most likely solve the issue if you are on the latest stable version of Rust, try:
### Using systemd service file
To start Parity as a regular user using systemd init:
```bash
$ cargo clean
```
1. Copy `parity/scripts/parity.service` to your
systemd user directory (usually `~/.config/systemd/user`).
2. To pass any argument to Parity, write a `~/.parity/parity.conf` file this way:
`ARGS="ARG1 ARG2 ARG3"`.
This always compiles the latest nightly builds. If you want to build stable, do a
so OpenEthereum begins syncing the Ethereum blockchain.
#### Using `systemd` service file
To start OpenEthereum as a regular user using `systemd` init:
1. Copy `./scripts/openethereum.service` to your
`systemd` user directory (usually `~/.config/systemd/user`).
2. Copy release to bin folder, write `sudo install ./target/release/openethereum /usr/bin/openethereum`
3. To configure OpenEthereum, see [our wiki](https://openethereum.github.io/Configuring-OpenEthereum) for details.
## 4. Testing <aid="chapter-004"></a>
Download the required test files: `git submodule update --init --recursive`. You can run tests with the following commands:
* **All** packages
```
cargo test --all
```
* Specific package
```
cargo test --package <spec>
```
Replace `<spec>` with one of the packages from the [package list](#package-list) (e.g. `cargo test --package evmbin`).
You can show your logs in the test output by passing `--nocapture` (i.e. `cargo test --package evmbin -- --nocapture`)
## 5. Documentation <aid="chapter-005"></a>
Be sure to [check out our wiki](https://openethereum.github.io/) for more information.
### Viewing documentation for OpenEthereum packages
You can generate documentation for OpenEthereum Rust packages that automatically opens in your web browser using [rustdoc with Cargo](https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html#using-rustdoc-with-cargo) (of the The Rustdoc Book), by running the the following commands:
An introduction has been provided in the ["So You Want to be a Core Developer" presentation slides by Hernando Castano](http://tiny.cc/contrib-to-parity-eth). Additional guidelines are provided in [CONTRIBUTING](./.github/CONTRIBUTING.md).
Error::UseMigrationTool=>"For db versions 15 and lower (v2.5.13=>13, 2.7.2=>14, v3.0.1=>15) please use upgrade db tool to manually upgrade db: https://github.com/openethereum/3.1-db-upgrade-tool".into(),
Error::Io(referr)=>format!("Unexpected io error on DB migration: {}.",err),
};
write!(f,"{}",out)
}
}
implFrom<IoError>forError{
fnfrom(err: IoError)-> Self{
Error::Io(err)
}
}
/// Returns the version file path.
fnversion_file_path(path: &Path)-> PathBuf{
letmutfile_path=path.to_owned();
file_path.push(VERSION_FILE_NAME);
file_path
}
/// Reads current database version from the file at given path.
/// If the file does not exist returns `DEFAULT_VERSION`.
// Err(rpc::ws::Error::Io(rpc::ws::ErrorKind::Io(ref err), _)) if err.kind() == io::ErrorKind::AddrInUse => Err(
// format!("WebSockets address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --ws-port and --ws-interface options.", url)
format!("WebSockets address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --ws-port and --ws-interface options.",url)
format!("{} address {} is already in use, make sure that another instance of an Ethereum client is not running or change the address using the --{}-port and --{}-interface options.",id,url,options,options)
),
Err(e)=>Err(format!("{} error: {:?}",id,e)),
}
}
pubfnnew_ipc<D: rpc_apis::Dependencies>(
conf: IpcConfiguration,
dependencies: &Dependencies<D>,
)-> Result<Option<IpcServer>,String>{
if!conf.enabled{
returnOk(None);
}
lethandler=setup_apis(conf.apis,dependencies);
letpath=PathBuf::from(&conf.socket_addr);
// Make sure socket file can be created on unix-like OS.
// to make sure timer does not spawn requests while shutdown is in progress
informant.shutdown();
trace!(target: "shutdown","Informant shut down");
// just Arc is dropping here, to allow other reference release in its default time
drop(informant);
trace!(target: "shutdown","Informant dropped");
drop(client);
trace!(target: "shutdown","Client dropped");
// This may help when debugging ref cycles. Requires nightly-only `#![feature(weak_counts)]`
// trace!(target: "shutdown", "Waiting for refs to Client to shutdown, strong_count={:?}, weak_count={:?}", weak_client.strong_count(), weak_client.weak_count());
trace!(target: "shutdown","Waiting for refs to Client to shutdown");