-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move in instructions from inherent transactions to unsigned transactions
The original intent was to use inherent transactions to prevent needing to vote on-chain, which would spam the chain with worthless votes. Inherent transactions, and our Tendermint library, would use the BFT's processs voting to also vote on all included transactions. This perfectly collapses integrity voting creating *no additional on-chain costs*. Unfortunately, this led to issues such as #6, along with questions of validator scalability when all validators are expencted to participate in consensus (in order to vote on if the included instructions are valid). This has been summarized in #241. With this change, we can remove Tendermint from Substrate. This greatly decreases our complexity. While I'm unhappy with the amount of time spent on it, just to reach this conclusion, thankfully tendermint-machine itself is still usable for #163. This also has reached a tipping point recently as the polkadot-v0.9.40 branch of substrate changed how syncing works, requiring further changes to sc-tendermint. These have no value if we're just going to get rid of it later, due to fundamental design issues, yet I would like to keep Substrate updated. This should be followed by moving back to GRANDPA, enabling closing most open Tendermint issues. Please note the current in-instructions-pallet does not actually verify the included signature yet. It's marked TODO, despite this bing critical.
- Loading branch information
1 parent
9157f8d
commit c182b80
Showing
26 changed files
with
310 additions
and
486 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# In Instructions | ||
|
||
In Instructions are included onto the Serai blockchain via unsigned | ||
transactions. In order to ensure the integrity of the included instructions, the | ||
validator set responsible for the network in question produces a threshold | ||
signature of their authenticity. | ||
|
||
This lets all other validators verify the instructions with an O(1) operation. |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
[package] | ||
name = "in-instructions-pallet" | ||
version = "0.1.0" | ||
description = "Execute calls via In Instructions from inherent transactions" | ||
description = "Execute calls via In Instructions from unsigned transactions" | ||
license = "AGPL-3.0-only" | ||
authors = ["Luke Parker <[email protected]>"] | ||
edition = "2021" | ||
|
@@ -17,7 +17,6 @@ thiserror = { version = "1", optional = true } | |
scale = { package = "parity-scale-codec", version = "3", default-features = false, features = ["derive", "max-encoded-len"] } | ||
scale-info = { version = "2", default-features = false, features = ["derive"] } | ||
|
||
sp-inherents = { git = "https://github.com/serai-dex/substrate", default-features = false } | ||
sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features = false } | ||
|
||
frame-system = { git = "https://github.com/serai-dex/substrate", default-features = false } | ||
|
@@ -35,7 +34,6 @@ std = [ | |
"scale/std", | ||
"scale-info/std", | ||
|
||
"sp-inherents/std", | ||
"sp-runtime/std", | ||
|
||
"frame-system/std", | ||
|
Oops, something went wrong.