* democracy use of weightinfo
* fix some doc and benchs
* todo generate from parity machine
* factorize and add license
* use final weights
* add slightly more sensible default weight
* refactor
* rename benchmark to avoid confusion
* just make remove_other_vote benchmark being the worst case of the extrinsic
* initial improvements
* better file management, ignore unused components
* Output warning when components unused
* update comment
* Write even when base weight is zero
* remove unwrap where possible
* Dont sort components to dedup
* undo delete
* improve clarity of unused components
* remove unused dep
* Update Process.json
* seal: Rework ext_transfer, ext_instantiate, ext_call error handling
* Deny calling plain accounts (must use transfer now)
* Return proper module error rather than ad-hoc strings
* Return the correct error codes from call,instantiate (documentation was wrong)
* Make ext_transfer fallible again to make it consistent with ext_call
* seal: Improve error messages on memory access failures
* seal: Convert contract trapped to module error
* seal: Add additional tests for transfer, call, instantiate
These tests verify that those functions return the error types
which are declared in its docs.
* Make it more pronounced that to_execution_result handles trap_reason
* Improve ReturnCode docs
* Fix whitespace issues in wat files
* Improve ReturnCode doc
* Improve ErrorOrigin doc and variant naming
* Improve docs on ExecResult and ExecError
* Encode u32 sentinel value as hex
* with_nested_context no longer accepts an Option for trie
* Fix successful typo
* Rename InvalidContractCalled to NotCallable
The transaction payment runtime api used its own extrinsic generic
parameter. This is wrong, because this resulted in using always the
native extrinsic. If there was a runtime upgrade that changed the
extrinsic in some way, it would result in the api breaking. The correct
way is to use the `Extrinsic` from the `Block` parameter. This is on the
node side the opaque extrinsic and on the runtime side the real extrinsic.
We need to order the delta before calculating the storage root, because
the order is important if the storage root is calculated using a storage
proof. The problem is arises when the delta is different than at the
time the storage root was recorded, because we may require a different
node that is not part of the proof and so, the storage root can not be
calculated. The problem is solved by always order the delta to use the
same order when calculating the storage root while recording the
stroage proof and when calculating the storage root using
the storage proof.
To prevent this bug in future again, a regression test is added.
Fixes: https://github.com/paritytech/cumulus/issues/146
* Allow blacklisting blocks from being finalized again after block revert
* Use BlockRules for storing unfinalized and add have_state_at in revert
* Move finalization_check in finalize_block upward
* Directly mark finalization blacklist as badblocks
* Remove obselete comment
* Update balance benchmarks
* Update weight functions
* Remove user component
* make componentless
* Add support for `#[extra]` tag on benchmarks
* Update balances completely
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Fix some tests
* Maybe fix to test. Need approval from @tomusdrw this is okay
* Make test better
* keep weights conservative
* Update macro for merge master
* Add headers
* Apply suggestions from code review
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
* BabeWorker -> BabeSlotWorker
* SlotWorker::notify_slot: similar to claim_slot, but called no matter authoring
* Wrap the future with a new struct BabeWorker
* Add type definition slot_notification_sinks
* Function slot_notification_streams for the receiver side
* Get a handle of slot_notification_sinks in BabeSlotWorker
* Implement notify_slot
* Switch to use bounded mpsc
* Do not drop the sink when channel is full
Only skip sending the message and emit a warning, because it is recoverable.
* Fix future type bounds
* Add must_use and sink type alias
* support custom ss58addressformat in from_ss58check_with_version
* fix str parse
1. if can parse with u8, use u8 into.
2. if u8 can't parse, convert to str then parse
* add a test
* typo
* add error description in test
* fix the `TryFrom<u8>` for `Ss58AddressFormat`
change check logic in TryFrom<u8> to replace modified code in `from_ss58check_with_version`
* use Ss58AddressFormat::default() replace DEFAULT_VERSION
* Apply suggestions from code review
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
* Update primitives/core/src/crypto.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* client/network/src/discovery: Adjust to Kademlia API changes
* client/network: Add peers to DHT only if protocols match
With https://github.com/libp2p/rust-libp2p/pull/1628 rust-libp2p allows
manually controlling which peers are inserted into the routing table.
Instead of adding each peer to the routing table automatically, insert
them only if they support the local nodes protocol id (e.g. `dot`)
retrieved via the `identify` behaviour.
For now this works around
https://github.com/libp2p/rust-libp2p/issues/1611. In the future one
might add more requirements. For example one might try to exclude
light-clients.
* Cargo.toml: Remove crates.io patch for libp2p
* client/network/src/behaviour: Adjust to PeerInfo name change
* client/network/src/discovery: Rework Kademlia event matching
* client/network/discovery: Add trace on adding peer to DHT
* client/network/discovery: Retrieve protocol name from kad behaviour
* client/network/discovery: Fix formatting
* client/network: Change DiscoveryBehaviour::add_self_reported signature
* client/network: Document manual insertion strategy
* client/network/discovery: Remove TODO for ignoring DHT address
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
* Add NetworkService::send_notifications
* Doc
* Doc
* API adjustment
* Address concerns
* Make it compile
* Start implementation
* Progress in the implementation
* Change implementation strategy again
* More work before weekend
* Finish changes
* Minor doc fix
* Revert some minor changes
* Apply suggestions from code review
* GroupError -> NotifsHandlerError
* Apply suggestions from code review
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* state_transition_waker -> close_waker
* Apply suggestions from code review
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* Finish renames in service.rs
* More renames
* More review suggestsions applied
* More review addressing
* Final change
* 512 -> 2048
Co-authored-by: Roman Borschel <romanb@users.noreply.github.com>
* seal: Fix syntax that confuses rust-analyzer
* seal: Add benchmarks for Dispatchables
These are only the benchmarks for the dispatchables of
the pallet. Those are not listed in the Schedule because
we do not want to pull the Schedule from storage before
dispatching.
This OK because those costs are not related to actual contract
execution. Those costs (instruction costs, ext_* costs) will
be benchmarked seperatly and entered into the default Schedule.
* seal: Add a maximum code size
* Fix comments from review
* Removed SEED constant
* Remove service components and add build_network, build_offchain_workers etc
* Improve transaction pool api
* Remove commented out line
* Add PartialComponents
* Add BuildNetworkParams, documentation
* Remove unused imports in tests
* Apply suggestions from code review
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Remove unused imports in node-bench
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* pallet-evm: add support for tuple-based precompile declarations
* Add missing license header
* Switch to use impl_for_tuples
* Remove unnecessary impl for ()
* seal: Fail instantiate if new contract is below subsistence threshold
We need each contract that exists to be above the subsistence threshold
in order to keep up the guarantuee that we always leave a tombstone behind
with the exception of a contract that called `ext_terminate`.
* Fixup executor test
* Bump runtime
* grandpa: remove unused methods to convert digest
* grandpa: add root extrinsic for scheduling forced change
* grandpa: add benchmark for schedule_forced_change
* grandpa: don't take authority weight in schedule_forced_change
* grandpa: add const for default forced change delay
* grandpa: adjust weights after benchmark on ref hardware
* grandpa: fix cleanup of forced changes on standard change application
* grandpa: replace schedule_forced_change with note_stalled
* grandpa: always trigger a session change when the set is stalled
* grandpa: fix bug on set id mutation after failed scheduled change
* grandpa: take delay as parameter in note_stalled
* grandpa: fix tests
* grandpa: fix cleanup of forced changes
* grandpa: add test for forced changes cleanup
* grandpa: add test for session rotation set id
* grandpa: add test for scheduling of forced changes on new session