This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
DAWN-400 ⁃ Transaction Proposal System #1030
Comments
blockone-syncclient
changed the title
Transaction Proposal System
DAWN-400 ⁃ Transaction Proposal System
Jan 3, 2018
bytemaster
added a commit
that referenced
this issue
Mar 14, 2018
Define start of eosio.multisig contract Add stub for API to check authorization levels of transactions
bytemaster
added a commit
that referenced
this issue
Mar 16, 2018
- added check_trx_permission API to enable contracts to validate permissions - updated authorization_checker to pre-authorize certain permission levels - added flat_set to eosiolib/datastream - added contracts/eosio.multisig to build
bytemaster
added a commit
that referenced
this issue
Mar 28, 2018
implment stub of new eosio.msig contract using new contract structure define eosio.msig abi eoslib name class now uses {} rather than constructor and uses magic_get serialization
bytemaster
added a commit
that referenced
this issue
Mar 28, 2018
bytemaster
added a commit
that referenced
this issue
Mar 29, 2018
moskvanaft
added a commit
that referenced
this issue
Mar 30, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 2, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 2, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 2, 2018
… multisig execution to executer, check for deferred transaction in multisig_tests #1030
moskvanaft
added a commit
that referenced
this issue
Apr 3, 2018
…dex in case of big objects, big transaction unit-test for multisig #1030
moskvanaft
added a commit
that referenced
this issue
Apr 3, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 3, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 3, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 4, 2018
moskvanaft
added a commit
that referenced
this issue
Apr 4, 2018
Verifying the subtask one by one:
|
Based on the previous comment, all subtasks verified |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Transaction Proposal System
A user, Alice, wishes to propose a transaction that contains actions which require permissions from Alice, Bob, and Charlie in order to process. She proposes the transaction through the Transaction Proposal system, publicly on-chain. Bob and Charlie review the transaction at their convenience and individually contribute their approvals. The transaction is posted to the chain and processes with the permission levels granted by the individuals at the time of approval.
Description
This system is designed to allow multiple parties to co-operate on-chain to authorize a given transaction. While
SignedTransaction
s can be constructed through side-channels and published to the chain to represent multi-party consent, the process of doing so can be opaque to the point of untenable in certain circumstances. As an alternative, the Proposal system allows parties to conduct that process asynchronous and transparently. Additionally, it allows for a hierarchical set of proposals which can respect a much larger and deeper authorization structure than a single transaction would likely have the capacity to represent within the limits of the chain.Implementation Details
In order to facilitate hardforks without binary code drops, this will be implemented in WASM however, it will require some privilege not available to normal user contracts. This means there is need for a privileged mode of execution and relates to to #1029 .
eosio.any
permission tolinkauth
which allows any named permission to satisfy the link and assumes contracts will implement additional considerationspropose
which takes a packedtransaction
and a list of authorizersapprove
which takes a permission level and must be be authorized by the user at that permission leveldeferred_transactions
with the explicit permission levels instead of the assumed code account'sactive
The text was updated successfully, but these errors were encountered: