Commit Graph

712 Commits

Author SHA1 Message Date
Marcio Diaz bc325eca66 Init store for slots-headers (#2492)
* init store for slots

* fix: add check_equivocation to Aura/Babe

* fix tests

* fix: add pruning bound

Co-Authored-By: André Silva <andre.beat@gmail.com>

* use saturating_sub
2019-05-15 12:22:43 +02:00
thiolliere 3a58c7ebcb make construct_service_factory compile (#2581) 2019-05-14 17:50:38 +02:00
Niklas Adolfsson e330b69cb9 fix(redundant import) (#2582)
Fixes warning: the item `HashSet` is imported redundantly
2019-05-14 18:07:13 +03:00
Pierre Krieger 0181833f89 Randomly fuzz the PSM (#2470)
* Randomly fuzz the PSM

* Fix test

* Run it moar
2019-05-14 16:30:28 +02:00
Pierre Krieger 18f7acce98 Move ProtocolMsg to service.rs (#2560)
* Move ProtocolMsg to service.rs

* Fix line width

* Fix line width again

* Correct whitespace

* Another whitespace correction
2019-05-14 14:26:52 +01:00
Svyatoslav Nikolsky a29fd10859 Do not try to synchronize from light client (#2039)
* do not try to sync from light node

* use Roles' utility methods
2019-05-14 14:41:10 +02:00
Pierre Krieger 5bde98e95a Increase tolerance for bandwidth usage in test (#2576) 2019-05-14 14:40:06 +02:00
Svyatoslav Nikolsky 9a14ba0555 Fix light client startup (build_select_chain returns Result<Option>) (#2574)
* fix light client strtup (build_select_chain -> Option)

* fixed node template compilation

* Update core/service/src/lib.rs

Co-Authored-By: Benjamin Kampmann <ben.kampmann@googlemail.com>
2019-05-14 12:38:30 +01:00
Pierre Krieger 6ccdbea01c Move extra_requests.rs as a submodule of sync (#2573) 2019-05-14 12:08:01 +02:00
Andrew Jones e5627e2480 Prevent divide by zero panic with checked_div (#2575) 2019-05-14 11:54:56 +02:00
Pierre Krieger e5b0a98f1a Split SyncContext from protocol Context (#2550) 2019-05-13 21:16:52 +02:00
Pierre Krieger d974189e3c Make the behaviour in libp2p generic (#2525)
* Make the behaviour in libp2p generic

* Fix indentation

* Fix bad merge
2019-05-13 20:55:39 +02:00
Pierre Krieger 2724cdac33 Remove the NetworkChan from the OnDemandService (#2561) 2019-05-13 20:55:27 +02:00
Svyatoslav Nikolsky 22586113ea Light GRANDPA import handler (#1669)
* GrandpaLightBlockImport

* extract authorities in AuraVerifier

* post-merge fix

* restore authorities cache

* license

* new finality proof draft

* generalized PendingJustifications

* finality proof messages

* fixed compilation

* pass verifier to import_finality_proof

* do not fetch remote proof from light import directly

* FinalityProofProvider

* fixed authorities cache test

* restored finality proof tests

* finality_proof docs

* use DB backend in test client

* justification_is_fetched_by_light_client_when_consensus_data_changes

* restore justification_is_fetched_by_light_client_when_consensus_data_changes

* some more tests

* added authorities-related TODO

* removed unneeded clear_finality_proof_requests field

* truncated some long lines

* more granular light import tests

* only provide finality proof if it is generated by the requested set

* post-merge fix

* finality_proof_is_none_if_first_justification_is_generated_by_unknown_set

* make light+grandpa test rely on finality proofs (instead of simple justifications)

* empty_finality_proof_is_returned_to_light_client_when_authority_set_is_different

* missing trait method impl

* fixed proof-of-finality docs

* one more doc fix

* fix docs

* initialize authorities cache (post-merge fix)

* fixed cache initialization (post-merge fix)

* post-fix merge: fix light + GRANDPA tests (bad way)

* proper fix of empty_finality_proof_is_returned_to_light_client_when_authority_set_is_different

* fixed easy grumbles

* import finality proofs in BlockImportWorker thread

* allow import of finality proofs for non-requested blocks

* limit number of fragments in finality proof

* GRANDPA post-merge fix

* BABE: pos-merge fix
2019-05-13 11:36:52 +02:00
Pierre Krieger 258f0835e4 Reserved peers don't occupy slots (#2546) 2019-05-13 11:02:51 +02:00
Svyatoslav Nikolsky 6cd82ca747 send GRANDPA messages without holding validator lock (#2537) 2019-05-13 09:18:43 +03:00
Pierre Krieger 6c41d0b3ec Isolate the code of ChainSync and turn it into a state machine (#2497)
* Move the is_offline and is_major_syncing logic to service.rs

* Move the ImportQueue to service.rs

* Remove stop() and abort()

* Add some more documentation to sync.rs
2019-05-12 19:23:45 +02:00
Pierre Krieger cbe13c459b Fix #2535 (#2540) 2019-05-11 17:36:10 +02:00
André Silva 9d23d2a25a Bump master to v2.0.0 (#2514)
* bump crates to v2.0.0

* fix crate authors

* bump node runtime spec_version

* remove unused import for no-std
2019-05-10 16:55:15 +02:00
cheme 0d8379d5d2 Child trie storage proof (#2433)
* proof on child trie

* higher level api for child storage proof

* boilerplate for proof from light fetch

* actually check proof on light fetch

* Do not break former encoding

* tabify

* tabify2

* Add child trie root tx to full_storage_root transaction.

* Shorten long lines.

* Temp rename for audit

* Make full_storage a trait method

* Name back and replace some code with full_storage where it looks fine.

* fix indentations, remove unused import

* flush child root to top when calculated

* impl +1
2019-05-10 14:31:41 +02:00
Svyatoslav Nikolsky 59be403730 Create AuthoritiesChange digest item in correct block (#2512)
* finalize srml modules in reverse order

* update runtime versions
2019-05-10 14:30:48 +02:00
Gregory Terzian 363448cd01 don't acquire the lock unless, and only hold it for as long as, necessary. (#2530) 2019-05-10 14:15:36 +02:00
Svyatoslav Nikolsky 42fa5f6209 Fix deadlock in tests that are using with_gossip (#2533)
* fixed gossip related tests deadlock

* cleaning sync tests log

* fixed typo in logs

* send GRANDPA messages without holding validator lock

* Revert "fixed gossip related tests deadlock"

This reverts commit d3fe55e45e32b7ea2e9f05f1c511972c708209ad.
2019-05-10 14:14:42 +02:00
thiolliere dfbaedd535 Allow modules to validate transaction, second attempt (#2463)
* first impl

* rename origin::inherent to none

* fix

* fix

* Apply suggestions from code review

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* comment

* better error

* doc

* (add unsigned module 🤦)

* doc

* fix

* implement for node-template as well

* add validated unsigned to executor

* fix

* fix

* bump version

* testing xt

* remove extraneous logic

* licence

* impl test
2019-05-10 14:13:04 +02:00
Pierre Krieger 4aa44ab280 Rewrite the PSM (#2440)
* Rewrite the PSM

* Fix disconnecting from reserved peers

* Minor adjustements

* Address review

* Reputation changes adjustements

* More adjustements

* Adjust all reputations

* More fixes and adjustments

* Improve proof

* Remove the possible panic

* Make sure reputation reaches 0
2019-05-10 14:08:42 +02:00
Benjamin Kampmann 18ca0170c3 Allow for customisation of chain selection systems (#2240)
* move SelectChain trait out of client

* Extend SelectChain, move longest chain implementation into it

* Bring SelectChain into service

* implement LongestChain SelectChain

* implement longest chain for node

* update Cargo.lock's

* in between erroring tests

* deprecate ::backend and ::import_lock

* Remove unneded space

Co-Authored-By: gnunicorn <ben.kampmann@googlemail.com>

* Remove unneded space

Co-Authored-By: gnunicorn <ben.kampmann@googlemail.com>

* Fixes test compilation

* remove todo

* re-enable client test

* add doc

* fixing tests

* Clarify SelectChain Interface, intended implementation and usage

* minor components cleanups

* minor cleanups

* Update lock files

* Implement cleaner interface for SelectChain

* addressing comments

* Updating tests

* bump node runtime impl version

* address grumbles
2019-05-10 14:08:12 +02:00
André Silva 32fdeed21c core: use current_thread tokio runtime to poll network to proto channel (#2531) 2019-05-10 10:26:58 +01:00
Michael Müller 47e3dacc2d Imply forced authoring on --dev (#2498)
* Imply forced authoring on --dev

* Combine conditionals
2019-05-09 19:01:57 +02:00
Pierre Krieger 099ff629b6 Add some benchmarks for ed25519 in substrate_primitives (#2520)
* Add some benchmarks for ed25519

* We don't need the Debug impl

* Add multiple message sizes
2019-05-09 17:58:45 +01:00
Pierre Krieger d4eb3ec747 Replace ring with ed25519-dalek in primitives (#2415) 2019-05-09 16:24:56 +02:00
Bastian Köcher e67b653c85 Silence the deprecated warning in generated code (#2513)
`impl_runtime_apis!` is not only implementing the apis, it also calls
them internally and thus generates the warning. So, we just allow
depracted calls in the generated code.
2019-05-09 10:27:08 +02:00
Pierre Krieger c3f20bf226 Merge the protocol thread with the network thread (#2475)
* Remove the Incoming enum

* Use tokio in the protocol background thread

* Some internal protocol logic simplifications

* Merge the protocol thread with the network thread

* More the status_sinks logic to Service

* Remove FromNetworkMsg
2019-05-08 13:49:29 +02:00
Andrew Jones 9fc1db3280 Use saturating_pow for max digest interval (#2506)
* Use saturating_pow for max digest interval

* Impl version
2019-05-08 13:20:43 +02:00
Svyatoslav Nikolsky a63635b952 Fix light connection issues (#2499)
* ignore light nodes in ConsensusGossip

* fixed method name

* temporary disabled penalty when block is announced

* remove traces of BLOCK_ANNOUNCE_REPUTATION_CHANGE
2019-05-08 12:24:20 +02:00
Gavin Wood 1436e6d734 Fix std/core crates (#2489)
- Add convert
- Add btree_set for without_std
2019-05-06 17:11:45 +02:00
Kian Peymani 9f61b95ecd Move hashing benches to Criterion. (#2487) 2019-05-06 15:41:39 +02:00
Gavin Wood adba89913e Clean up random seed to make a bit more flexible (#2456)
* Reformulate random seed to be more random

- First 80 random values come from cycling the incomplete series (
  instead of filling with zeroes)
- Calculate random material each usage (use a single amalgamated
  ring buffer to store them for avoiding 81 lookups each time)
- Mutate inputs by hashing each with:
  - its index (into the 81)
  - an additional "subject" key provided by caller

This keeps the final output low-influence while still allowing
it to be used as the seed to independent contexts. (Hashing the
result to give the final seed is no better than using parent_hash).

* Docs

* Bump runtime

* Update notes

* Remove feature(alloc)

* Update srml/system/src/lib.rs

Co-Authored-By: gavofyork <github@gavwood.com>
2019-05-06 13:57:30 +02:00
Pierre Krieger 2dea51cd3b Add some crate-level documentation to network-libp2p (#2483) 2019-05-06 13:10:37 +02:00
Pierre Krieger 3935b247dd Move construct_simple_protocol! to appropriate module (#2476) 2019-05-06 09:37:25 +02:00
Pierre Krieger 82cb52a400 Show more information when too many addresses are reported (#2473)
* Show more information when too many addresses are reported

* Update core/network-libp2p/src/behaviour.rs

Co-Authored-By: tomaka <pierre.krieger1708@gmail.com>
2019-05-06 09:32:35 +02:00
Pierre Krieger 5a820db7f5 Remove the dependency on heapsize (#2459)
* Remove heapsize dependency

* Finish removing heapsize

* Revert accidental change

* Fix Cargo.lock
2019-05-04 13:59:59 +02:00
Pierre Krieger 35b84ae8f6 Remove NetworkService::report_handle (#2462) 2019-05-04 13:58:52 +02:00
Pierre Krieger 747df1f332 Disable mDNS when passing --dev (#2467) 2019-05-04 13:58:06 +02:00
Pierre Krieger 8ca343ca8c Add reputation system to network crate (#2454) 2019-05-04 13:51:06 +02:00
Marcio Diaz 18ec2d14d0 Fix grandpa issue for InvalidViewChanges (#2468)
* fix: add message_allowed to send_topic to avoid InvalidViewChanges

* fix: this should be strict

* fix typo

* fix: simplify
2019-05-04 01:16:14 +02:00
Robert Habermeier 32c85a61b5 add derives to aura slot duration (#2469) 2019-05-03 15:14:17 -04:00
Pierre Krieger 6921b2ce3d tokio -> tokio-timer in consensus (#2460) 2019-05-03 16:00:47 +02:00
Pierre Krieger 52472238bd Drop connections when the handler gets disabled (#2439)
* Drop connections when the handler gets disabled

* Add test
2019-05-02 21:03:04 +02:00
Pierre Krieger 586dce10ed Simplify the code of connection_keep_alive (#2438) 2019-05-02 20:32:05 +02:00
DemiMarie-parity fb19684358 BABE signing and verification (#2270)
* Add basic BABE consensus type

* Update core/consensus/babe/slots/Cargo.toml

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Fix parameterization and run `rustfmt`

* Respond to review comments

* Update various Cargo.lock files

* Revert "Update various Cargo.lock files"

This reverts commit af53d7624752a744320e9cbb25749fdd8e6f46d2.

* `BabeSealSignature` → `BabeSeal`

* Move slot code to its own crate

This was highly non-trivial, due to cyclic dependencies.

* Remove redundancy between AuRa and BABE

Some of the code duplication was removed using a macro.

* Fix build error

* Avoid non-`#[doc(hidden)]` re-exports

Also, bump some library versions in `Cargo.toml`.

* Remove dead code in AuRa

* Remove impl_slot macro

It was more trouble than it was worth.

Also, delete useless dependencies on Serde.

* AuRa and BABE need different DB keys

* Bring back `aura::Network`, but deprecate it.

* Improve docs and add `slot_duration` inherent method

* Add docs to `substrate_consensus_aura::SlotDuration`

* Add missing documentation and #![forbid(missing_docs, unsafe_code)]

* Add a #![forbid(missing_docs)]

* Remove dependency of `test-runtime` on `slots`

* Update core/consensus/babe/src/lib.rs

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Remove wrongly added file

* Fix copyright notice

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Bump `impl_version` and `spec_version`

* Add more code to BABE

Most of it is copied from AuRa code, but at least the initial core is
there.

* Stuck on horrible compiler error message

* add missing files

* Spaces → tabs

* Simplify code

* Fix compilation

This involved fixing dependencies and adding a `Mutex`.

* More work on BABE

* Fix deprecation version

* Fix deprecation version; remove spurious carets

* Fix Cargo.toml

* Implement VRF signing logic

* The import queue code compiles, though it probably doesn’t work.

* Add VRF verification

* Update Cargo.lock

* Update dependencies

* Move test network to sr25519 authority keys

* Fix accidental build bustage

* Trying to get the tests to work

* Add logging messages and remove dead code

There seems to be a problem with the test network.  Since AuRa and BABE
are both affected, this is most likely due to the switch from ed25519 to
sr25519.

* Trying to get the tests to work

* Add logging messages and remove dead code

There seems to be a problem with the test network.  Since AuRa and BABE
are both affected, this is most likely due to the switch from ed25519 to
sr25519.

* Working testsuite at last!

The problem was with serialization and deserialization.  Normally,
those functions are generated automatically, but those for `BabeSeal`
had to be written manually.  The hand-written versions were not
correct, however, as shown by the decoder not being able to decode the
output of the encoder.

* Enable BabeSeal::Encode asserts in --release tests

* Bump runtime and dependency versions

* Fix wasm compilation

The wasm build was broken because of a typo in
`core/test-runtime/src/lib.rs`, and missing gates on the `std` feature
in `core/consensus/{aura,babe}/primitives/Cargo.toml`.  Additionally,
improve the quotation in the build scripts.

* Merge Cargo.lock

* Change expected JSON string

The test was also broken on `master`, so I suspect that the test was
incorrect.

* Responded to review

* Remove hard-coded threshold from production code

A hard-coded threshold is now only used in tests.

* Fix swapped doc comments

* Fix unused import warnings

* fix ci error

* fix typo

* Fix spacing in docs

* Minor changes suggested by @joepetrowski

on https://github.com/paritytech/substrate/pull/2372

* Remove unnecessary getters

* fix compile error

* Fix silly unused-variable error

* Improve documentation formatting

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Add issue links

* Revert excess verbosity and #![forbid(warnings)]

* Apply suggestions from code review

Co-Authored-By: DemiMarie-parity <48690212+DemiMarie-parity@users.noreply.github.com>

* Reformat some comments

* Threshold should depend on number of validators

Also, respond to code review

* Fix silly compilation errors

* Reduce logging verbosity

* Fix missing import
2019-05-02 11:16:54 -04:00