SIP3-Add-lock-option-to-TxOuts-and-allow-extra-data
Contents
Snowblossom Improvement Proposal 3
SIP3: Add TxOut locking and extra data
Change
Output Locking
This change adds a feature that was always planned, Transaction Requirements on Transaction Outputs. The requirements will allow a transaction output to be blocked until a specific time or block height or both.
message TransactionRequirements { int32 required_block_height = 3; int64 required_time = 4; }
This allows a user to mark an output as unspendable for some time.
Extra Data
Additionally, in this change we are allowing users to add extra data to TransactionOutputs. The extra data will not be used by the protocol in any way other than allowing it to be there.
Between this feature and the time locking, this will enable snowblossom funds to be used to stake social networking identities, which is part of the Snowblossom Channels work, which is described here: Snowblossom Channels
Activation Time
The proposed activation block is block 35000, which is estimated to be sometime around Jan 1st, 2019. At that time, all nodes will need to be running Snowblossom 1.4.0 or higher to process new blocks.
Code
The code for this is already in master, but set to not be enabled yet.
- Most of the code is in this function: validateTransactionOutput
- The change will be activated by overriding these two lines in the prod config and setting them to 35000: NetworkParams
Questions
Deployment
If passed, this change will be set to be activated at block 35000. At that point, Transactions with these features will be allowed and nodes that don't have it will reject blocks with those new features. So all nodes will need to be on Snowblossom 1.4.0 or higher at that time.
Voting
- Passes when 1000 blocks pass containing 25% voting and >50% agreement
- Pools will represent their miners.
- Set in your miner or pool configuration file either
vote_yes=3
vote_no=3
Sponsors
- Joseph Gleason - Fireduck (slack) - fireduck64 (github)
- Zachary Coon - Clueless (slack) - cluelessperson (github)