Commit Graph

608 Commits

Author SHA1 Message Date
Pierre Krieger 4dfa17ab37 Fix style in #364 (#365) 2018-07-18 14:34:05 +02:00
Pierre Krieger de168ca034 Fix the networking (#364)
* Serve only non-empty Kademlia nodes

* Use the number of custom protos to determine whether to open more

* Add timeout when connecting

* Connect to random peers from the peer store

* Various adjustements

* Typo

* Explicitely connect to bootnodes

* Fix potential overflow
2018-07-18 13:55:38 +02:00
Arkadiy Paronyan 73613f45c1 Gossip through all peers. (#359)
* Added some traces

* Gossip for all

* Fixed formatting
2018-07-18 12:07:05 +02:00
Svyatoslav Nikolsky 7b8463aaf1 explicit stop of AsyncImportThread (#360) 2018-07-18 12:06:50 +02:00
Tomasz Drwięga 7ce2a8552f Extrinsics PubSub (#349)
* Extrinsic subscriptions.

* Handle RPC errors better.

* Add tests for extrinsics and unignored others.

* Handle client errors.

* Fix compilation.
2018-07-17 23:57:08 +02:00
Sergey Pepyakin 7dcbf77c9d Use create instead of open for export blocks (#356) 2018-07-17 22:52:42 +02:00
Arkadiy Paronyan 94fcb9a262 Download bodies when authorit nodes are syncing (#355) 2018-07-17 21:48:51 +02:00
Gav Wood e9ddcac261 Fix deadlock for too-small heap (#353) 2018-07-17 21:47:28 +02:00
Pierre Krieger 1809f0596b Fix install command in README (#354) 2018-07-17 20:31:34 +02:00
Arkadiy Paronyan 5035f18a85 Specialized network() (#352) 2018-07-17 19:33:12 +02:00
Gav Wood 07fbd871d9 Final tweaks for PoC-2 runtime upgrade (#348)
* Final tweaks for PoC-2 runtime upgrade

* Address grumble

* Avoid slow wasm

* New poc-2-era bootnodes

* Fix warning

* Typo

* Fix for allocation in wasm

* Fix & runtimes.

* PoC-1 should be default.

* Name testnet Krumme Lanke, update README

* YML update

* Use the right port
2018-07-17 18:55:28 +02:00
Pierre Krieger 428682d3b5 More robust connections (#343)
* Make Kademlia connection more robust

* Make custom connetions more robust

* Fix potential deadlock

* Style and minor changes

* Upgrade rust-libp2p
2018-07-17 17:14:06 +02:00
Chevdor 7372bbc0a5 Add badges (#344) 2018-07-17 13:59:54 +02:00
Gav Wood f140ebf7a6 Remove old bootnodes (#341) 2018-07-17 10:10:22 +02:00
Svyatoslav Nikolsky 91cb0fcfef fixed AsyncImportQueue drop deadlock (#342) 2018-07-17 10:09:18 +02:00
Gav Wood e75d7d8fda Adaptive heap size (#328)
* heap-size is a CLI arg, make it 512 by default

* Fix tests

* Adaptive heap size.

* Allow storage_exists
2018-07-16 20:59:10 +02:00
Pierre Krieger bb8987df28 Better reporting in libp2p (#337) 2018-07-16 19:11:19 +02:00
Svyatoslav Nikolsky f775b38828 Fix light sync deadlock (blocks import queue) (#260)
* fix light sync deadlock

* some more docs
2018-07-16 19:04:27 +02:00
Robert Habermeier c6119cbbdf hash random seed when using to choose round proposer (#336) 2018-07-16 18:17:52 +02:00
Arkadiy Paronyan f84ad85c62 Use substrate codec for network messages (#333)
* Use substrate codec for network messages

* Version bump

* Removed redundant format
2018-07-16 14:28:31 +01:00
Phil 747537f6fd changed polkadot.io to polkadot.network (#335) 2018-07-16 14:20:24 +01:00
Pierre Krieger 801747cb76 Fix nodes not connecting to each other (#330)
* Fix nodes not connecting to each other

* Only report external addresses
2018-07-16 14:27:11 +02:00
Gav Wood c78478cf03 Ensure any call to disable peer has a reason (#321)
* Fix warnings in libp2p

* Force a reason when you use the fatalist disable_peer

* Print more information

* Slightly more concise ref-fu

* Tracing for figuring out what's going into genesis

* Merge

* Fxi test
2018-07-15 23:30:53 +02:00
Arkadiy Paronyan 1aeb2825af Refactored Slicable (#324)
* Refactored Slicable

* Docs

* Wasm build

* Wasm build

* Renamed traits

* Review nits

* Renamed Slicable as well
2018-07-15 22:51:21 +02:00
Sergey Pepyakin b45020175a Use --export-table from the latest LLD [2] (#325)
* It turned out that "table" was renamed.

To `__indirect_function_table`.

* Rebuild binaries.
2018-07-15 20:12:34 +02:00
snd 1d726193ba Issue 279 - unique path for each chains db, network, keystore to prevent collisions (#322)
* make spec.name() part of database_path preventing collisions

resolves #279

* add `id` field to `ChainSpec`

* add blank line for readability

* dot/cli: use spec_id in db_path

* dot/cli: make spec_id part of keystore_path

* dot/cli: make spec_id part of network_path

* add id field to poc-1.json chain spec

* dot/cli: spec_id -> chain_id
2018-07-15 19:31:59 +02:00
Pierre Krieger b3916c2999 Remove dependency on parity/network (#323)
* Remove dependency on parity/network

* Remove dependency on RLP as well

* Fix tests

* Fix tests again
2018-07-15 19:25:29 +02:00
Pierre Krieger e32b77ffdc Disable peers only for 5 minutes (#320)
* Disable peers only for 5 minutes

* Fix formatting
2018-07-15 15:14:00 +02:00
Sergey Pepyakin fed50df6ed Use --export-table from the latest LLD (#316)
* Remove unused build.sh

* Don't use wasm-export-table anymore.

* Rebuild binaries.

* Fix build script.
2018-07-15 14:09:29 +02:00
Gav Wood f982801ed7 Avoid accounts destroyed in payments from being aux (#318) 2018-07-15 14:04:26 +02:00
Pierre Krieger 5924b361a3 Switch from devp2p to libp2p (#268)
* Switch from devp2p to libp2p

* Move the keys in the network state

* Properly load, store or generate private key

* Some robustness

* Update for latest libp2p

* Allow secio

* Don't open a new Kademlia connec all the time

* Handle Kademlia disconnection

* Set correct permissions on key file

* Improvements to secret key storage

* Flush the peer store at Kademlia requests

* Use RAII guards for disconnection

* Some misc work

* Set informations about peers

* Fix tests and external URL

* Fix some style

* Split obtain_private_key into multiple function

* More style fixes

* More style fixes

* Fix some concerns

* Turn // into ///

* More style fixes

* More style fixes

* Add annotations to unreachable!

* Fix style again

* Remove commented out code

* Fix test year

* More concerns
2018-07-15 11:45:37 +02:00
Gav Wood ae5298f8b7 Fix and cleanups (#314)
* Cleanups (remove genesis.wasm & nicer errors)

- Pretty errors for version mismatch
- Remove the need for genesis wasm

* Remove unneeded wasm files

* Improve code of conduct

* Leaner code

* Test fixes

* fix tests

* Fix consensus checking
2018-07-15 00:30:13 +02:00
Arkadiy Paronyan 5b3050293a Fixed a few authoring issues (#315) 2018-07-14 22:27:25 +02:00
Arkadiy Paronyan b8216372c7 Split polkadot-service (#310)
* Substrate service

* Splitting polkadot service

* Specialised components

* Specialised components

* Docs and style

* Docs and style

* Final touches

* Added db key assertion
2018-07-14 18:07:11 +02:00
Gav Wood ee31955969 Dual execution (#311)
* Initial logic

* Remove accidental file

* Config

* Remove accidental

* Apply CLI config

* Additional work. Sadly pointless.

* Rearrange everything

* Loop into CLI param

* Implement dual execution

* typo

* fix tests.

* Better docs

* Fix bug

* Add some tests

* Report block information on consensus failure, tests

* Fix test
2018-07-14 16:10:20 +02:00
Arkadiy Paronyan 0665cfa9fc Avoid serializing into json::Value (#313) 2018-07-14 15:54:48 +02:00
Gav Wood 58c84d49da More timely block import notifications (#306)
* More timely block import notifications

* Grumbles.

* More wrapping

* Fix build

* Fixes
2018-07-13 12:13:03 +02:00
David 37a4b30d08 environmental! handles generics (#307)
* Teach environmental! about generics

* whitespace
2018-07-12 16:43:18 +01:00
Robert Habermeier 7d881a2ec5 Validator side of the collation protocol. (#295)
* skeleton of collators object

* awaiting and handling collations. rename `collators` to CollationPool

* add some tests

* add tests

* implement Collators trait for ConsensusNetwork

* plug collators into main polkadot-network

* ignore collator role message

* add a couple more tests

* garbage collection for collations

* ensure disconnected backup collator is removed from pool

* address other grumbles
2018-07-12 10:47:10 +02:00
Gav Wood c8fe9e86bd Improve Wasm extern errors and increase heap (#299)
* Improve Wasm extern errors

* Increase heap size

* Update heap size further
2018-07-11 22:40:30 +02:00
snd 72b5cd858c Issue 212 - refactor Checkable trait to be more generic (#287)
* runtime: refactor Checkable and BlindCheckable traits

* fix impl BlindCheckable for Extrinsic

* fix impl Checkable for TestXt

* fix impl Checkable for UncheckedExtrinsic

* fix tabs

* add ::Address to system::Trait since its no longer in Checkable trait

* replace tab by space in comment

* replace occurences of Checkable::check with ::check_with

* tx-pool: replace CheckedIntrinsic type alias since it now would require type param

* make more uses of Checkable compile

* adapt Executive impl to new Checkable trait

* fix that CheckedExtrinsic takes AccountId not Address as first type param

* Checkable trait: return error again since it's required in some cases

* Checkable: improve docstrings

* consistent punctuation and capitalization in docstrings

* Ctx -> Context

addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200956240

* reduce trait bounds for impl Checkable for TestXt

addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200839303

* use <UncheckedExtrinsic as Checkable>::Checked

addresses https://github.com/paritytech/polkadot/pull/287#discussion_r200955165

* Revert "add ::Address to system::Trait since its no longer in Checkable trait"

This reverts commit 02eb103015b833c995c9f9067aac2542bb7ce5ea.

* runtime/executive: properly fix that Address no longer in Checkable

* return `Result<Self::Checked, &'static str>` from `Checkable::check`
2018-07-11 21:12:22 +02:00
Sergey Pepyakin a3b1b98a90 Fix for nightly 2018-07-10 (#296)
* Use [alloc_error_handler] instead of oom lang item

* Same fix for basic_add

* Drive by fix for duplicate generic parameter

* Rebuild binaries.
2018-07-11 15:40:33 +02:00
Gav Wood 23d4704abe PoC-2 tweaks (#293)
- Rename poc-2 to staging
- Make telemetry default for global chains
2018-07-11 12:01:16 +01:00
Benjamin Kampmann 52e0a1eada Rename Hashing Trait to Hash (#288) 2018-07-10 10:05:53 +02:00
Arkadiy Paronyan 48aae39343 Poc-1 backwards compatibility (#291) 2018-07-10 09:49:42 +02:00
Sergey Pepyakin a472fe4430 Update pwasm to the latest nightly (#290)
- Update parity-wasm to 0.31
- Update pwasm-utils to 0.3.1
- Update usages of btree map in runtime-std
2018-07-09 19:18:01 +02:00
Robert Habermeier 374984fe35 PoC-1 consensus extracted to "rhododendron" (#284) 2018-07-09 11:26:04 +02:00
Robert Habermeier 9b254c3075 Collator node workflow (#280)
* arbitrary application logic in CLI

* collation work

* split up exit and work futures in application

* collation node workflow

* typo

* indentation fix

* doc grumbles

* rename Application to Worker

* refactor Worker::exit to exit_only
2018-07-06 17:13:31 +03:00
Robert Habermeier be5ff4e62f Minimal parachains part 2: Parachain statement and data routing (#173)
* dynamic inclusion threshold calculator

* collators interface

* collation helpers

* initial proposal-creation future

* create proposer when asked to propose

* remove local_availability duty

* statement table tracks includable parachain count

* beginnings of timing future

* finish proposal logic

* remove stray println

* extract shared table to separate module

* change ordering

* includability tracking

* fix doc

* initial changes to parachains module

* initialise dummy block before API calls

* give polkadot control over round proposer based on random seed

* propose only after enough candidates

* flesh out parachains module a bit more

* set_heads

* actually introduce set_heads to runtime

* update block_builder to accept parachains

* split block validity errors from real errors in evaluation

* update WASM runtimes

* polkadot-api methods for parachains additions

* delay evaluation until candidates are ready

* comments

* fix dynamic inclusion with zero initial

* test for includability tracker

* wasm validation of parachain candidates

* move primitives to primitives crate

* remove runtime-std dependency from codec

* adjust doc

* polkadot-parachain-primitives

* kill legacy polkadot-validator crate

* basic-add test chain

* test for basic_add parachain

* move to test-chains dir

* use wasm-build

* new wasm directory layout

* reorganize a bit more

* Fix for rh-minimal-parachain (#141)

* Remove extern "C"

We already encountered such behavior (bug?) in pwasm-std, I believe.

* Fix `panic_fmt` signature by adding `_col`

Wrong `panic_fmt` signature can inhibit some optimizations in LTO mode.

* Add linker flags and use wasm-gc in build script

Pass --import-memory to LLD to emit wasm binary with imported memory.

Also use wasm-gc instead of wasm-build.

* Fix effective_max.

I'm not sure why it was the way it was actually.

* Recompile wasm.

* Fix indent

* more basic_add tests

* validate parachain WASM

* produce statements on receiving statements

* tests for reactive statement production

* fix build

* add OOM lang item to runtime-io

* use dynamic_inclusion when evaluating as well

* fix update_includable_count

* remove dead code

* grumbles

* actually defer round_proposer logic

* update wasm

* address a few more grumbles

* schedule collation work as soon as BFT is started

* impl future in collator

* fix comment

* governance proposals for adding and removing parachains

* bump protocol version

* tear out polkadot-specific pieces of substrate-network

* extract out polkadot-specific stuff from substrate-network

* begin polkadot network subsystem

* grumbles

* update WASM checkins

* parse status from polkadot peer

* allow invoke of network specialization

* begin statement router implementation

* remove dependency on tokio-timer

* fix sanity check and have proposer factory create communication streams

* pull out statement routing from consensus library

* fix comments

* adjust typedefs

* extract consensus_gossip out of main network protocol handler

* port substrate-bft to new tokio

* port polkadot-consensus to new tokio

* fix typo

* start message processing task

* initial consensus network implementation

* remove known tracking from statement-table crate

* extract router into separate module

* defer statements until later

* double signature is invalid

* propagating statements

* grumbles

* request block data

* fix compilation

* embed new consensus network into service

* port demo CLI to tokio

* all test crates compile

* some tests for fetching block data

* whitespace

* adjusting some tokio stuff

* update exit-future

* remove overly noisy warning

* clean up collation work a bit

* address review grumbles

* fix lock order in protocol handler

* rebuild wasm artifacts

* tag AuthorityId::from_slice for std only

* address formatting grumbles

* rename event_loop to executor

* some more docs for polkadot-network crate
2018-07-06 14:17:03 +02:00
Robert Habermeier 5355956314 fix typo (#285) 2018-07-06 13:50:40 +02:00