Implementing sudo requires 15/21 BPs to approve two separate proposals. One to create the eosio.sudo account, another to deploy the eosio.sudo contract. The first transation has to be executed before the second can be proposed.
You can review the first createsudo transaction with:
cleos multisig review libertyblock createsudo
This transaction contains 4 actions:
eosio::newaccount
: Create the eosio.sudo accounteosio::buyrambytes
: Buy 50 kB worth of RAM for the account. The EOS for the RAM purchase comes from the eosio account, which currently has an adequate balance of 12 EOS.eosio::delegatebw
: Stake 1 EOS for NET and 1 EOS for CPU for eosio.sudo. This isn't very important because we can always delegate more resources to the account later if needed.eosio::setpriv
: Make eosio.sudo a privileged account.
The second transaction can be proposed once the first has been approved. If you want to preview what it will look like, it is available here.
This transaction sets the code and ABI for the eosio.sudo account.
The code was compiled using eosio.cdt v1.2.1 and the source is available here