Commit Graph

1604 Commits

Author SHA1 Message Date
Bastian Köcher 7769554af6 Clean up depedencies and cargo tomls (#4180)
* Clean up depedencies and cargo tomls

* Yeah, fuck it
2019-11-22 13:02:51 +01:00
Kian Paimani 11703a5916 Relocate weight to paint + decouple from extensions (#4124)
* Fisr migrated version of weight to paint

* Bump

* Minor nits

* Some review fixes.

* Line width

* Revert spec bump

* Fix build

* Update lock file

* Update palette/executive/src/lib.rs

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>

* Update palette/membership/src/lib.rs

Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
2019-11-22 11:23:32 +01:00
Jim Posen 502deb9cce Upgrade trie-db crate to 0.16.0. (#4144)
* Upgrade paritytech/trie crates to 0.16.0.

* Fix tests and unexpected Cargo.lock change.

* Bump trie-bench version.
2019-11-21 11:01:49 +01:00
joe petrowski 2783b44207 Rename PAINT to PALETTE (#4161)
* /paint to /palette

* rename paint to palette

* rename the modules in palette to be pallets

* update Structure.adoc

* bump impl

* fix CI directory

* Update docs/Structure.adoc

Co-Authored-By: Benjamin Kampmann <ben@gnunicorn.org>
2019-11-21 01:08:25 +01:00
Bastian Köcher 3ae18811d7 sr-io remove unused files (#4130) 2019-11-20 22:18:47 +01:00
Bastian Köcher b1625f1a44 Fix node-rpc-client compilation (#4159)
* Fix `node-rpc-client` compilation

* Enable `alloc` feature of `zeroize` on `std`
2019-11-20 21:33:20 +01:00
Benjamin Kampmann 303843f483 Move inherents to primitives (#4126)
* Split Aura and Timestamp inherents out of paint

* fixup node depedencies

* move babe inherents to primitives

* move authorship inherents into primitives

* Move finalty tracker inherents into primitives

* fix aura primitives import
2019-11-20 12:18:36 +01:00
Xiliang Chen 3d4bee6cd6 add div and checked_div to Fixed64 (#4136)
* add div and checked_div to Fixed64

* add more tests

* div by zero is div by zero
2019-11-19 22:33:29 +01:00
Tomasz Drwięga 613b5e7e2d Fix serialization of transaction_paymentInfo (#4146)
* Add serialization test for u128

* Fix crash on serde of u128
2019-11-19 18:42:35 +01:00
André Silva 9194b2a3c0 gossip: replace LRU cache (#4137)
* peerset: remove unused dependencies

* gossip: replace lru cache

* header-metadata: replace lru cache
2019-11-19 10:58:06 +01:00
brenzi 10925510de fix full_crypto (#4133)
* hopefully fixing api-client with this

* another use statement needed

* using full path for Vec

* next try

* yet again

* cleanup
2019-11-19 09:33:56 +01:00
Bryant Eisenbach 566328cd3e Add serde for Signature types (#4109)
* refactor: Added `from_slice()` method to ECDSA signatures

* doc: Modified ECDSA signature docstring to note Recovery ID

* feat: Implemented serde for Signature types

Note: using hexstring encoding

* feat: Automatically derive serde for MultiSignature

* refactor: Convert hex bytes using try_from instead of from_slice

Avoids panicking in critical code

Implemented from Peer Review

* clean: spaces -> tabs

* test: Added tests for Signature serialization

Added dependency on serde_json for testing purposes
2019-11-18 21:00:47 +01:00
Benjamin Kampmann 60e5011c72 Reorganising the repository - external renames and moves (#4074)
* Adding first rough ouline of the repository structure

* Remove old CI stuff

* add title

* formatting fixes

* move node-exits job's script to scripts dir

* Move docs into subdir

* move to bin

* move maintainence scripts, configs and helpers into its own dir

* add .local to ignore

* move core->client

* start up 'test' area

* move test client

* move test runtime

* make test move compile

* Add dependencies rule enforcement.

* Fix indexing.

* Update docs to reflect latest changes

* Moving /srml->/paint

* update docs

* move client/sr-* -> primitives/

* clean old readme

* remove old broken code in rhd

* update lock

* Step 1.

* starting to untangle client

* Fix after merge.

* start splitting out client interfaces

* move children and blockchain interfaces

* Move trie and state-machine to primitives.

* Fix WASM builds.

* fixing broken imports

* more interface moves

* move backend and light to interfaces

* move CallExecutor

* move cli off client

* moving around more interfaces

* re-add consensus crates into the mix

* fix subkey path

* relieve client from executor

* starting to pull out client from grandpa

* move is_decendent_of out of client

* grandpa still depends on client directly

* lemme tests pass

* rename srml->paint

* Make it compile.

* rename interfaces->client-api

* Move keyring to primitives.

* fixup libp2p dep

* fix broken use

* allow dependency enforcement to fail

* move fork-tree

* Moving wasm-builder

* make env

* move build-script-utils

* fixup broken crate depdencies and names

* fix imports for authority discovery

* fix typo

* update cargo.lock

* fixing imports

* Fix paths and add missing crates

* re-add missing crates
2019-11-14 21:51:17 +01:00
Gav 4582038b3d Fix warning and directory restructure. 2018-02-08 14:29:30 +01:00
Gav 5c842f77bc Many renames.
- Everything polkadot becomes polkadot-.
- Wasm (substrate) executor tests split from Wasm (Polkadot) runtime and
built independently.
2018-02-07 23:36:34 +01:00
Gav d494d4b89b Fix everything. 2018-02-07 17:07:55 +01:00
Gav dcff8f1a2f Full native build with new structure.
No tests yet.
Wasm build still pulls in std.
2018-02-07 15:54:18 +01:00
Gav 9fe85fc9f4 Split out substrate-primitives from polkadot-primitives.
Bottom half minus tests builds.
2018-02-07 15:24:54 +01:00
Gav 26b4b56402 Remove CallData/OutData. 2018-02-07 13:02:57 +01:00
Gav a5195dfce6 Rename polkadot-serializer -> substrate-serializer 2018-02-07 11:47:30 +01:00
Gav 2220c6e37a Rename polkadot-primitives -> substrate-primitives. 2018-02-07 11:33:29 +01:00
Gav c0d072a5f3 Rename codec -> substrate-codec, executor -> substrate-executor. 2018-02-07 11:29:10 +01:00
Gav 1b7f34bef2 Refactor primitives. 2018-02-07 11:03:43 +01:00
Robert Habermeier 8bae8510f6 combine relay chain primitives into one module 2018-02-06 18:30:21 +01:00
Robert Habermeier 6aaf446352 move function and proposal types to transaction module 2018-02-06 16:42:32 +01:00
Robert Habermeier 4378ce7887 fix tests and review grumbles 2018-02-06 16:35:19 +01:00
Robert Habermeier d2660900de unclobber function changes 2018-02-06 15:41:28 +01:00
Robert Habermeier de65de4758 fix tests after merge 2018-02-06 14:44:25 +01:00
Robert Habermeier af2fdc5478 fix compilation for native 2018-02-06 12:26:04 +01:00
Robert Habermeier 5a675e9c64 fix most issues with compiling on WASM 2018-02-06 12:02:03 +01:00
Robert Habermeier b58df7892f integrate new primitives with native-runtime 2018-02-05 17:40:49 +01:00
Robert Habermeier 2bc7c57359 reintroduce slicable to primitives 2018-02-05 16:15:45 +01:00
Robert Habermeier 188332cc4b extract out all primitives 2018-02-01 11:13:55 +01:00
Robert Habermeier 0035369f82 allow polkadot-primitives to compile on nightly 2018-01-31 22:27:07 +01:00
Robert Habermeier 29c3a585a1 Merge branch 'master' into author-relay-block 2018-01-31 18:11:30 +01:00
Robert Habermeier 8e6cb1b6e2 more idiomatic std features 2018-01-30 19:28:57 +01:00
Arkadiy Paronyan 44499550d9 Networking and in-memory client (#38)
* Networking crate draft

* Started work on syncing algo

* Fixed query range

* BlockCollection tests

* In-mem client backend

* Fixed tests

* Renamed Transaction

* Removed stray println

* Docs
2018-01-30 18:49:52 +01:00
Gav d97520c7f0 Introduce hex/string printing in runtime. 2018-01-27 13:42:40 +01:00
Robert Habermeier 954a4dc8ef clean up some unsafety in Slicable 2018-01-23 17:21:20 +01:00
Gav Wood 3402f169a7 Introduce basic skeleton for Polkadot runtime. (#32)
* Introduce basic skeleton for Polkador runtime.

* Clean up the runtime skeleton.

* Make initial runtime skeleton compile.

* Compile polkadot-runtime both for Wasm ad native, allowing for testing and direct usage.

* More fleshing out on runtime.

* Update native support.

* Fix warning.

* Update gitignore

* Update path.

* Fix path.

* Remove accidentally committed files.

* Add wasm binaries.

* Fix test.

* Native storage support API.

* Add environmental module

* Add native environment to make native source-code compatible with wasm.

Also tests.

* Finish up & polish environment stuff.

* Avoid using reentrancy issues.

* Add some docs and a test.

* Remove unneeded function.

* Documentation

* Tweak docs

* Remove TODOs.

* Balance transfers + util methods.

* Rejig tests and ensure authorities are addressed consistently.

* Add marshaller for xfer function

* Transaction dispatch test.

* Minor fix.

* Add test for ser/de transaction.

* Add ser/de for header.

* Add tests for header ser/de

* Introduce basic block decoding/execution framework.

* Introduce block decoding/execution framework (p2)

* Big refactor.

* Split out joiner.

* Hide away support modules.

* Fix up wasm runtime.

* use externalities for chain_id

* Clean up (Test)Externalities.

* Repot and introduce keccak-256 external.

* Signing with crypto.

* fix unsafety hole in environmental using function

* Introduce Ed25519 crypto.

* Repotting.

* Add ed25519_verify external.

* Introduce Ed25519 verify as an external.

* fix unsafety hole around unwinding

* Compile fixes.

* use new environmental API

* Tests for ed25519 verify.

* Polish

* Introduce UncheckedTransaction & test.

* Implement basic block and tx processing

* Introduce static hex and valid signature for block test.

* Repot session.

* comments.

* Refactor and timestamp test

* Remove fluff

* Remove fluff.

* Staking eras and tests.

* Implement sessions.

* Polish

* Test sessions.

* Introduce better hashing.

- Blake2 for secure hashing
- XX for fast hashing

* Fix tests.

* Introduce staking.

* Tests for simple staking system.

* Build fix for wasm.

* Fix tests.

* Repotting and docs.

* Docs and licence.

* Documentation.

* Remove superfluous code.

* Remove dummy key.

* Remove other superfluous file.

* Optimise with swap_remove
2018-01-23 15:24:17 +01:00
Gav Wood a670208a33 Introduce first groundwork for Wasm executor (#27)
* Introduce first groundwork for Wasm executor.

* Remove old Rust-runtime code.

* Avoid commiting compled files.

* Add runtime precompile.

* Rename so module makes more sense.

* Further renaming.

* Ensure tests work.

* Allow bringing in of externalities.

- Add util functions/macros.
- Add uncompacted runtime.
- Add some external crates from pwasm-std for managing allocs/memory
stuff.

* Nice macros for imports.

* Allow passing in of data through allocators.

Make memcpy and malloc work.
Basic allocator.

* Can now pass in bytes to WasmExecutor.

* Additional cleanup.

* Switch usages of `OutData` to `u64`

No need to be able to return bytes anymore.

* convert to safe but extremely verbose type conversion.

@rphmeier any more concise way of doing this?

* Remove StaticExternalities distinction.

* Remove another unused use.

* Refactor wasm utils out

* Remove extraneous copies that weren't really testing anything.

* Try to use wasm 0.15

* Make it work!

* Call-time externalities working.

* Add basic externalities.

* Fix grumbles and note unwraps to be sorted.

* Test storage externality.

Unforunately had to change signatures of externalities to avoid
immutable function returning a reference. Not sure what to do about
this...

* Fix nits.

* Compile collation logic.

* Move back to refs. Yey.

* Remove "object" id for storage access.

* Fix test.

* Fix up rest of tests.

* remove unwrap.

* Expose set/get code in externalities

Also improve tests and add nice wrappers in rust-wasm.

* Add validator set.

* Introduce validator set into externalities and test.

* Add another external function.

* Remove code and validators; use storage for everything.

* Introduce validators function.

* Tests (and a fix) for the validators getter.

* Allow calls into runtime to return data.

* Remove unneeded trace.

* Make runtime printing a bit nicer.

* Create separate runtimes for testing and polkadot.

* Remove commented code.

* Use new path.

* Refactor into shared support module.

* Fix warning.

* Remove unwraps.

* Make macro a little less unhygenic.

* Add wasm files.
2018-01-08 16:48:45 +01:00
Robert Habermeier 45c3e40a62 Candidate Agreement + Consensus (#29)
* candidate statement importing

* import votes on validity

* import availability votes

* candidate receipt type

* make table mod public

* test context for table

* add harness for tests

* some tests for misbehavior

* produce proposal from table

* count candidate issuance as implicit vote

* keep track of messages known by validators

* fix primitives compilation

* simple BFT agreement

* kill unused macro_use annotation

* tests for BFT agreement

* test for not concluding on different prepares

* return summary upon statement import

* accept bft agreement on proposal not locally submitted

* check justification set for BFT

* BFT rewrite: vote accumulator with tests

* squash some warnings

* a few more tests for the accumulator

* add sender to table's signed statement

* implement honest node strategy for BFT

* inex -> index

* import and broadcast lock proofs

* poll repeatedly when state changes

* don't broadcast advance vote immediately if locked

* do not check validity of locked candidate

* basic tests for the strategy

* remove unused context trait and fix warning

* address some review grumbles

* address some more review nits

* fix lock import logic and add a test

* fix spaces

* fix a couple more style grumbles

* more type-safe justifications

* rename Communication enum variants

* improve some panic guard proofs

* add trailing comma
2018-01-03 15:50:05 +01:00
Robert Habermeier 9612e1d7c1 Minimal collation work-flow and necessary traits (#25)
* collator crate skeleton and description

* parachain primitives: proof -> witness and egress format

* collation of ingress queues through trait

* add ingress collation test

* structure for collated ingress

* add collated ingress to proposal

* witness -> proof

* ingress collation and candidate creation + code cleanup

* update collator lib to new definitions

* address formatting grumble
2017-12-13 15:04:58 +01:00
Tomasz Drwięga 55e74cd426 Update some types and interfaces to match the spec (#24)
* Update primitives.

* Fix validator interface.
2017-12-04 16:51:43 +01:00
Tomasz Drwięga db78e5fb4c RPC & Client (#21)
* Initial version of http server.

* Refactor the structure.

* add unassigned ports info.

* Rename servers to match conventions.

* Add client crate and some proper RPC implementations.

* Style & docs.
2017-11-15 19:29:14 +01:00
Tomasz Drwięga 0ceebe6625 camel case and deny (#20) 2017-11-13 20:51:30 +01:00
Tomasz Drwięga 2fa0239dab State machine crate and rust impl of executor (#17)
* Executor.

* Rust contracts implementation.

* Add documentation and fix transfer data.

* Fix auth contract interface.

* Add some executor tests.

* Validator set contract.
2017-11-12 16:53:11 +01:00
Tomasz Drwięga e9177294f6 Initial validator trait. (#14)
* Initial validator trait.

* Add missing docs warning.

* Fix formatting.

* Fix validator output and serialization.

* Get rid of redundant ValidationCode type.
2017-11-12 16:48:35 +01:00
Tomasz Drwięga 2d08a51f8a Fix naming and code. 2017-11-11 12:53:38 +01:00
Tomasz Drwięga 1f3c2f7148 More compact bytes serialization and code re-use. 2017-11-11 11:52:00 +01:00