* use pdqselect for median_algorithm selection instead of sorting the whole vec
* Make use of pqdselect clearer
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Make use of pqdselect clearer
Co-Authored-By: André Silva <andre.beat@gmail.com>
* Fix indentation
There is a space between the tabs.
* Send local GRANDPA authority id to telemetry
* Update core/finality-grandpa/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Generalize authority_id()
* Shorten code
* Do not send unfinalized authority sets to telemetry
`update_authority_set()` is called from, among others,
import side. These updates only track a pending change
and may or may not happen, hence it's wrong to send
this set to telemetry (which would assume that this is
the current, finalized authority set).
* Send current authority set and local authority id on set change
* always fetch epoch from runtime
* node integration tests don't test light nodes
* give stand-in full node a FULL role
* rejig babe APIs
* introduce next-epoch-descriptor type
* overhaul srml-BABE epoch logic
* ensure VRF outputs end up in the right epoch-randomness
* rewrite `do_initialize` to remove unnecessary loop
* begin accounting for next epoch in epoch function
* slots passes header to epoch_data
* pass slot_number to SlotWorker::epoch_data
* begin extracting epoch-change logic into its own module
* aux methods for block weight
* aux methods for genesis configuration
* comment-out most, refactor header-check pipeline
* mostly flesh out verifier again
* reinstantiate babe BlockImport implementation
* reinstate import-queue instantiation
* reintroduce slot-worker implementation
* reinstate pretty much all the rest
* move fork-choice logic to BlockImport
* fix some, but not all errors
* patch test-runtime
* make is_descendent of slightly more generic
* get skeleton compiling when passing is_descendent_of
* make descendent-of-builder more succinct
* restore ordering of authority_index / slot_number
* start fiddling with tests
* fix warnings
* improve initialization architecture and handle genesis
* tests use correct block-import
* fix BABE tests
* fix some compiler errors
* fix node-cli compilation
* all crates compile
* bump runtime versions and fix some warnings
* tweak fork-tree search implementation
* do backtracking search in fork-tree
* node-cli integration tests now work
* fix broken assumption in test_connectivity
* babe tests fail for the right reasons.
* test genesis epoch logic for epoch_changes
* test that epochs can change between blocks
* First BABE SRML test
* Testing infrastructure for BABE
Also includes a trivial additional test.
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* A little more test progress
* More work on BABE testing
* Try to get the tests working
* Implement `UintAuthorityId`-based test mocks
* Fix compilation errors
* Adjust to upstream changes
* Block numbers are ignored in BABE epoch calculation
* authority_index() should ignore invalid authorities
* Fix compile error
* Add tests that session transitions happen
* Check if BABE produces logs
It currently does not.
* Fix test suite
This was really nasty, due to a type confusion that showed up as an
off-by-1 buffer error.
* Add additional tests
Most of these were derived from the current output, so they are only
useful to guard against regressions.
* Make the tests more readable
Also bump impl_version.
* Fix excessive line width
* Remove unused imports
* Update srml/babe/src/lib.rs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* try to fix imports
* Fix build errors in test suite
* tests did not pass
* Try to get at least one digest to be output
Currently, the code emits either no digests (if I don’t call
`Session::rotate_session()` or two digests (if I do), which is wrong.
* More tests
They still don’t work, but this should help debugging.
* fix silly error
* Don’t even try to compile a broken test
* remove broken check_epoch test and add one for genesis epoch
* Check that the length of the pre-digests is correct
* Bump `impl_version`
* use epoch_for_descendent_of even for genesis
* account for competing block 1s
* finish srml-babe docs
Co-Authored-By: André Silva <andre.beat@gmail.com>
* address grumbles
* Force new era only when over third validators is disabled.
* Update srml/session/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Update srml/staking/src/lib.rs
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Parametrize the threshold.
* Bump runtime version.
* Update node/runtime/src/lib.rs
* Fix build.
* Fix im-online test.
* core/primitives: set dothereum address type to 4
* subkey: add dothereum to network prefix
* core/primitives: set dothereum address type to 20
* core/primitives: update comment
* core/primitives: set default address to Dothereum
* Revert "core/primitives: set default address to Dothereum"
This reverts commit 2fc95490c89390eb26f200cb314435b1e9ff83e8.
* core/primitives: allow to parse different default address types
* updated direct dependencies to parity-wasm
* fixed tests and incremented impl_version of the runtime
* update wasmi to 0.5.1 in sr-sandbox, bringing all parity-wasm deps up to 0.40
`debug-assertions` can also be enabled in for release builds. This
introduces a new build-script that extracts the build type from the
`PROFILE` env variable and sets the `build_type` cfg.
By accident it was already enabled in master for quite some time. To
make sure that we don't blow up the wasm binary size, I compiled the
binary with the feature enabled and disabled. With nice panic messages
enabled, the binary size increases by 908 bytes. Given the value that
this feature brings, I think it is okay to have these panic messages
enabled by default.
* Clear up import/export misunderstandings
* Fetch minimum period from runtime
* Remove unnecessary comment
This variable is already fetched from the runtime
in the line below.
* Fix bug in factory
The `best_block_id` stayed the same, it was always the
genesis hash. This resulted in the factory failing after
4096 blocks, since `client/db` discards hashes (in this
case the genesis hash) after 4096 blocks from the database.
* Fix tense in error message
* Improve allocator documentation
* Fix bug in allocator
Under certain circumstances an invalid pointer was
returned: when the `ptr` was calculated as equal
to the `max_heap_size`. This is an invalid pointer
since there is no access allowed after the heap limit.
The way to provoke this was to repeatedly allocate
with sizes which were previously not allocated and
immediately deallocate right afterwards. What this
did was to increment the `bumper` with each allocation,
whilst keeping the `total_size` of the heap `0`.
If this repeated allocation/deallocation scheme resulted
in `max_heap_size == ptr` the `ptr` was still returned.
The allocator only checked if the `total_size` was
still within the `max_heap_size` limits, and not
if the resulting `ptr` was still within the valid
heap region.
This commit introduces a check to validate if the
calculated `ptr` is within the heap.
* Add test for zero byte allocation and document behavior
* Improve code readability by introducing a const
* Fix error message in test
* Apply suggestions from code review
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
* Fix code review suggestions
* Replace early return with assertion
* Remove test for zero size allocations
* Shorten test code
* Shorten comment
* Make bump() return Result
* Add comment for bump()
* Remove ambiguous comment
* Replace value with const
* Use proof for panic message
* Fix merge
* Add comment regarding minimum allocation size
* Implement support for `patch` section in wasm-builder
* Update core/utils/wasm-builder/src/wasm_project.rs
* Support patch by path
* Go down to the actual data
* Decode hex
* Remove log
* Some refactoring to help with testing
* Add own functions for sign and verify.
* Add sign test
* Sign-verify test
* Generate-sign-verify test for both cryptos
* Add aliases
* Print signature
* More refactoring
* Update sign-transaction as transfer
* Simplify transfer and sign-transaction
* main to top file
* rename read_input_message to read_message_from_stdin
* More refactoring
* Add read_required_parameter
* Add format seed
* More refactoring
* format code
* add print_extrinsic
* Remove 0x from print
* fix naming
* Fix readme
* Remove rustfmt
* Remove commented test
* Fix import nits
* Sketch
* Some work on docs.
* Doc improvements.
* More docs.
* Some more docs.
* Yet another comment.
* Bump impl_version.
* Accept the block hash
* Use NumberOrHex
* Update node/rpc/src/contracts.rs
Co-Authored-By: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
* Move rpc/primitives
* Switch to new proc-macro crate for implementing traits for tuples
* Switch back to stable `Cargo.lock` format
* Reduce tuple number to match rusts default implementation