Open gd0live opened 6 years ago
config.hpp(libraries/chain/include/eosio/chain/config.hpp)에서는 기본적인 계정 몇 개를 정의해놓고 있습니다.
const static uint64_t system_account_name = N(eosio);
const static uint64_t null_account_name = N(eosio.null);
const static uint64_t producers_account_name = N(eosio.prods);
bios boot 튜토리얼 코드에는 부트 과정에서 생성하는 시스템 계정들의 목록이 있구요.
systemAccounts = [
'eosio.bpay',
'eosio.msig',
'eosio.names',
'eosio.ram',
'eosio.ramfee',
'eosio.saving',
'eosio.stake',
'eosio.token',
'eosio.vpay',
]
제 짐작으로는, eosio, eosio.null, eosio.prods는 블록체인 자체에 연결된 계정인데 비해, 부트 시퀀스에서 생성하는 시스템 계정들은 시스템 컨트랙트와 연결된 계정이라서 그런 것 같습니다. 시스템 컨트랙트는 블록체인의 정책과 기획에 따라서 변경될 수 있고, 블록체인 자체는 모든 경우에도 공통적으로 필요한 부분으로 구성한다는 생각이 밑바탕에 자리잡고 있는 것 같습니다.
eosio.token과 eosio.msig 컨트랙트의 경우에도, 정책과 기획에 따라 다르게 구현할 수 있기 때문에 built-in으로 구현하지 않은 것으로 짐작됩니다.
eosio.prods는 따로 생성하지 않아도 되는 built-in된 특수한 계정이라고 적혀있습니다. 그러면 다음의 계정들도 built-in 해놓으면 되지 않았을까요?
eosio, eosio.bpay, eosio.msig, eosio.names, eosio.ram, eosio.ramfee,
eosio.saving, eosio.stake, eosio.token, eosio.vpay
그리고 blockchain에서 eosio.token, eosio.msig 등의 컨트랙트는 없어서는 안될 필수 요소인데, 왜 컨트랙트는 built-in 해놓지 않았을까 궁금합니다.