André Silva
ae38a806ed
grandpa: report equivocations with unsigned extrinsics ( #6656 )
...
* grandpa: use unsigned extrinsics for equivocation reporting
* grandpa: allow signed reports as well
* grandpa: change runtime api for submitting unsigned extrinsics
* grandpa: fix tests
* grandpa: add test for unsigned validation
* grandpa: add benchmark for equivocation proof checking
* offences: fix grandpa benchmark
* grandpa: add proper weight for equivocation reporting extrinsic
* grandpa: fix weight unit
2020-07-17 12:32:20 +02:00
Bastian Köcher
ad2e832289
Don't require module name in inherents ( #6576 )
...
* Start
* Cleanup `construct_runtime!`
* Add tests
* Fix after merge
* Update the docs
2020-07-06 10:29:17 +00:00
André Silva
a9c21b8b84
babe: report equivocations ( #6362 )
...
* slots: create primitives crate for consensus slots
* offences: add method to check if an offence is unknown
* babe: initial equivocation reporting implementation
* babe: organize imports
* babe: working equivocation reporting
* babe: add slot number to equivocation proof
* session: move duplicate traits to session primitives
* babe: move equivocation stuff to its own file
* offences: fix test
* session: don't have primitives depend on frame_support
* babe: use opaque type for key owner proof
* babe: cleanup client equivocation reporting
* babe: cleanup equivocation code in pallet
* babe: allow sending signed equivocation reports
* node: fix compilation
* fix test compilation
* babe: return bool on check_equivocation_proof
* babe: add test for equivocation reporting
* babe: add more tests
* babe: add test for validate unsigned
* babe: take slot number in generate_key_ownership_proof API
* babe: add benchmark for equivocation proof checking
* session: add benchmark for membership proof checking
* offences: fix babe benchmark
* babe: add weights based on benchmark results
* babe: adjust weights after benchmarking on reference hardware
* babe: reorder checks in check_and_report_equivocation
2020-07-04 12:18:13 +02:00
André Silva
4cf1b4fa7b
grandpa: minor cleanups in communication module ( #6371 )
...
* grandpa: replace Result<(), ()> with Option<()>
* grandpa: replace &Option<T> with Option<&T>
* grandpa: cleanup local id and keystore usages
* grandpa: return bool on check_message_signature
* grandpa: fix erroneous log message on startup
* grandpa: fix test
2020-06-30 18:59:36 +01:00
Benjamin Kampmann
be8c96adec
Relax substrate licensing scheme ( #5947 )
2020-05-15 13:21:56 +02:00
André Silva
ab208837fa
grandpa: missing equivocation reporting nits ( #5953 )
...
* primitives: move reporting key type to common key types
* session: remove useless methods on MembershipProof
* grandpa: remove std special-casing when checking signatures
* grandpa: add some more docs
* grandpa: use proper error types rather than strings
2020-05-12 12:17:33 +01:00
André Silva
fbd2ac8f3b
grandpa: report equivocations ( #3868 )
...
* session: runtime api for generating session membership proofs
* grandpa: add runtime api for creating equivocation report txs
* grandpa: submit signed equivocation report transactions
* grandpa: use proper equivocation report type
* grandpa: report equivocations
* grandpa: validate equivocation proof
* grandpa: update to finality-grandpa 0.9.1
* grandpa: fix encoding of session membership proof
* grandpa: initialize set id session mapping for genesis session
* grandpa: fix bug in set_id session validation
* fix compilation
* cleanup from merge conflicts
* cleanup crate tomls
* grandpa: refactor equivocation handling to separate trait
* node-template: fix compilation
* fix test compilation
* bump finality-grandpa to v0.10.2
* rpc: fix runtime version test
* CHERRY-PICK #4200 : Add documentation to SubmitSignedTransaction and actually make it work
Squashed commit of the following:
commit 4f2cb0b1c588a06f2f3b478bb4b28b5cb29d54b9
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Tue Dec 3 16:29:33 2019 +0100
Split the method to avoid confusing type error message.
commit c5bf24eeaaf902add89ed1b046b22c4a4aaeb2cd
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Tue Dec 3 16:19:55 2019 +0100
Make accounts optional, fix logic.
commit 97db1ef556e023cf6847e5ffdb036c0e3ea6fb0a
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Tue Dec 3 10:06:20 2019 +0100
Remove warning.
commit 535f5c116d1a2e826eaf90c3f7e6798e443d61d8
Merge: 516257217 0f1a5f651
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Tue Dec 3 07:08:05 2019 +0100
Merge branch 'master' into td-signed-transactions
commit 516257217bac89fcebd083712f4ea68b7b23b55a
Merge: ac98248c6 2e68c80c2
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Mon Dec 2 13:57:25 2019 +0100
Merge branch 'master' into td-signed-transactions
commit ac98248c6c56cff381130645a82a13d29933cf83
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Mon Nov 25 17:34:52 2019 +0100
Forgotten import.
commit 67a3c19031506c28e31c6bc4a90fff62d467dd58
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Mon Nov 25 17:32:10 2019 +0100
Fix naming and bounds.
commit 93e768ea9df97a4629fca1f9bc4b108fdb33f876
Author: Tomasz Drwięga <tomasz@parity.io >
Date: Mon Nov 25 17:01:05 2019 +0100
Add documentation to signed transactions and actually make them work.
* grandpa: skip block initialization on report submission method
* primitives: allow transaction pool access by default for offchain calls
* grandpa: unused parameters
* grandpa: remove unused method
* grandpa: enable equivocation reporting
* grandpa: add workaround for parameter encoding
* grandpa: fix localized_payload calls in tests
* fix submit_report_equivocation_extrinsic in runtimes
* node: fix submit transaction test compilation
* node: bump spec_version
* rpc: fix api version test
* grandpa: allow custom equivocation offence type
* grandpa: add test for authorities::next_change_height
* grandpa: cleanup report_equivocation function
* node: move reporting app crypto to node-primitives
* grandpa: move equivocation traits to own module
* grandpa: rename app-crypto crate import
* grandpa: export equivocation types
* node: bump spec_version
* grandpa: rename EquivocationReport to EquivocationProof
* grandpa: add missing docs to primitives
* grandpa: add missing docs to equivocation
* node: fix compilation
* grandpa: add missing docs to pallet
* node: bump spec_version
* fix whitespace
* grandpa: return error on offence reporting
* grandpa: expose session and validator count in proofs through traits
* grandpa: use strong key in module KeyOwnerProofSystem
* grandpa: move key ownership proof to grandpa runtime api
* grandpa: remove unnecessary cloning when checking equivocation proof
* grandpa: make report_equivocation a method in Environment
* support: implement KeyOwnerProofSystem for ()
* grandpa: move KeyOwnerProofSystem to module trait
* test-utils: fix runtime compilation
* grandpa: fix test compilation
* grandpa: fix test compilation after merge
* grandpa: simplify transaction submission types
* grandpa: validate equivocation report in signed extension
* client: fix test
* node: use ValidateEquivocationReport signed extension
* grandpa: expose key ownership proof under opaque type
* grandpa: better docs on key ownership proofs
* grandpa: add note about signed extension
* grandpa: add ValidateEquivocationReport::new
* grandpa: remove skip_initialize_block from runtime api
* grandpa: use new offchain transaction submission API
* grandpa: take set_id in generate_key_ownership_proof
* grandpa: update to finality-grandpa v0.12.2
* grandpa: cleanup usages of AuthoritySet::current
* grandpa: fix test
* grandpa: add mocking utilities for equivocation reporting
* grandpa: add test for equivocation reporting
* grandpa: move SetIdSession initialization
* grandpa: add more tests
* node: enable historical session manager
* node: bump spec_version
* node: use strong key types in KeyOwnerProofSystem definitions
* grandpa: export GrandpaEquivocationOffence type
2020-05-06 17:25:51 +01:00