EOSIO / eos

An open source smart contract platform
https://developers.eos.io/manuals/eos
MIT License
11.28k stars 3.76k forks source link

Is this the original design idea?Producers can create short accounts by eosio #4246

Closed shishi614 closed 6 years ago

shishi614 commented 6 years ago

eos3@eos3-virtual-machine:~/eos-dao-node$ cleos get account eosio privileged: true permissions: owner 1: 1 eosio.prods@active, active 1: 1 eosio.prods@active, memory: quota: unlimited used: 1.113 Mb

net bandwidth: used: unlimited available: unlimited limit: unlimited

cpu bandwidth: used: unlimited available: unlimited limit: unlimited

producers:

The eosio account permissions are assigned to all producers as shown above

eos3@eos3-virtual-machine:~/eos-dao-node$ cleos system newaccount eosio eosio111 EOS55UqxQmM1A7Hdfp9kAe9vgHbjJM9iXp7EpCH5sNQier9sAB5gP --stake-net '100000.0000 SYS' --stake-cpu '100000.0000 SYS' --buy-ram-kbytes 8 1569431ms thread-0 main.cpp:428 create_action ] result: {"binargs":"0000000000ea30550000002104ea305500200000"} arg: {"code":"eosio","action":"buyrambytes","args":{"payer":"eosio","receiver":"eosio111","bytes":8192}} 1569436ms thread-0 main.cpp:428 create_action ] result: {"binargs":"0000000000ea30550000002104ea305500ca9a3b00000000045359530000000000ca9a3b00000000045359530000000000"} arg: {"code":"eosio","action":"delegatebw","args":{"from":"eosio","receiver":"eosio111","stake_net_quantity":"100000.0000 SYS","stake_cpu_quantity":"100000.0000 SYS","transfer":false}} executed transaction: 956f1c955ce39fca5319e83676d1c72f0db9de5681246ac31ea37b3e7b11a3de 336 bytes 11416 us

eosio <= eosio::newaccount {"creator":"eosio","name":"eosio111","owner":{"threshold":1,"keys":[{"key":"EOS55UqxQmM1A7Hdfp9kAe9v...

eosio <= eosio::buyrambytes {"payer":"eosio","receiver":"eosio111","bytes":8192}

eosio.token <= eosio.token::transfer {"from":"eosio","to":"eosio.ram","quantity":"0.1197 SYS","memo":"buy ram"}

eosio <= eosio.token::transfer {"from":"eosio","to":"eosio.ram","quantity":"0.1197 SYS","memo":"buy ram"}

eosio.ram <= eosio.token::transfer {"from":"eosio","to":"eosio.ram","quantity":"0.1197 SYS","memo":"buy ram"}

eosio.token <= eosio.token::transfer {"from":"eosio","to":"eosio.ramfee","quantity":"0.0006 SYS","memo":"ram fee"}

eosio <= eosio.token::transfer {"from":"eosio","to":"eosio.ramfee","quantity":"0.0006 SYS","memo":"ram fee"}

eosio.ramfee <= eosio.token::transfer {"from":"eosio","to":"eosio.ramfee","quantity":"0.0006 SYS","memo":"ram fee"}

eosio <= eosio::delegatebw {"from":"eosio","receiver":"eosio111","stake_net_quantity":"100000.0000 SYS","stake_cpu_quantity":"1...

eosio.token <= eosio.token::transfer {"from":"eosio","to":"eosio.stake","quantity":"200000.0000 SYS","memo":"stake bandwidth"}

eosio <= eosio.token::transfer {"from":"eosio","to":"eosio.stake","quantity":"200000.0000 SYS","memo":"stake bandwidth"}

eosio.stake <= eosio.token::transfer {"from":"eosio","to":"eosio.stake","quantity":"200000.0000 SYS","memo":"stake bandwidth"}

warning: transaction executed locally, but may not be confirmed by the network yet eos3@eos3-virtual-machine:~/eos-dao-node$

Although eosio on the main network does not have eos tokens, the hypernode can be transferred to eosio and then created a short account through eosio without bidding??thanks @jgiszczak Contributor jgiszczak commented 2 hours ago The eosio account can do anything before it drops it privileges, including create short named accounts without bids. That privilege is ordinarily used to create the initial producer accounts. On mainnet, eosio has dropped its privileges, so no one can bypass name bidding. @jgiszczak jgiszczak closed this 2 hours ago @shishi614

shishi614 commented 27 seconds from now how to drops it privileges ,my test network has Make eosio.msig a privileged account

We make eosio.msig privileged using the following.

$ push action eosio setpriv '["eosio.msig", 1]' -p eosio@active

and

eosio resigns

Once producers have been elected and the minimum number requirements have been met, the eosio account can resign, leaving the eosio.msig account as the only privileged account.

Resigning is basically involves setting the keys of the eosio. accounts to null. Use the following command to clear the eosio. accounts' owner and active keys:

eos3@eos3-virtual-machine:~/eos-dao-node$ cleos get account eosio privileged: true permissions: owner 1: 1 eosio.prods@active, active 1: 1 eosio.prods@active, memory: quota: unlimited used: 1.113 Mb

net bandwidth: used: unlimited available: unlimited limit: unlimited

cpu bandwidth: used: unlimited available: unlimited limit: unlimited

producers:

the eosio of my testnetwork and main network is the same .

jgiszczak commented 6 years ago

eosio drops its privileges by nulling its keys as stated in the quoted documentation. eosio.msig has a contract loaded which does not allow any unilateral action, so it is not equivalent to eosio. That contract can itself only be updated via a multi-signature process requiring 2/3+1 of all producers signing the update.

jgiszczak commented 6 years ago

Further questions about the design of EOS should be asked at https://eosio.stackexchange.com/ or the various other public discussion forums. Github issues are for reporting defects or making specific feature requests in the software.