演示的系統爲 Ubuntu 18.04 LTS,內存8g以上,硬盤300g+node
們以EOS-Mainnet倉庫部署,(EOS-Mainnet是部署在目前EOS主網的版本,等於再次在EOSIO倉庫測試過的版本,更穩定。)ios
開始clone 代碼git
//若是沒有安裝git,先安裝 $sudo apt install git $git clone https://github.com/EOS-Mainnet/eos.git
切換到最新分支(當前的EOS最新版本爲 v1.4.3)github
更新子模塊代碼shell
git submodule update --init --recursive
./eosio_build.sh -s EOS
sudo ./eosio_install.sh
sudo mkdir /data sudo chmod 777 /data cd /data
建立缺省錢包json
cleos wallet create --to-console
輸出密碼如:PW5Kequvj31v37mAeBEPtx2mNcs5SHCjoZXf4sWw67GvxuNPZwfEfapi
這裏會產生一個密碼,能夠把密碼保存下來ide
echo PW5Kequvj31v37mAeBEPtx2mNcs5SHCjoZXf4sWw67GvxuNPZwfEf > pwd.txt
生成genesis.json文件測試
mkdir config mkdir data cd config nodeos --extract-genesis-json genesis.json
新建一個config.ini文件, 並添加以下內容fetch
http-server-address = 0.0.0.0:8000 p2p-listen-endpoint = 0.0.0.0:8001 agent-name = "EOS AI" producer-name = eosio signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 #創世節點才須要,其餘bp不須要開啓 enable-stale-production = true #如下爲通用設置 max-transaction-time=1000 wasm-runtime = wabt pause-on-startup = false abi-serializer-max-time-ms = 3000 chain-state-db-size-mb = 65535 reversible-blocks-db-size-mb = 2048 contracts-console = false p2p-max-nodes-per-host = 1 allowed-connection = any max-clients = 100 network-version-match = 1 sync-fetch-span = 500 #filter-on = * connection-cleanup-period = 30 max-implicit-request = 1500 http-validate-host = false access-control-allow-origin = * access-control-allow-headers = * access-control-allow-credentials = false verbose-http-errors = true #添加插件 plugin = eosio::chain_api_plugin plugin = eosio::history_plugin plugin = eosio::history_api_plugin plugin = eosio::producer_plugin
cd /data nodeos --genesis-json ./config/genesis.json --max-irreversible-block-age 108000000 --data-dir ./data --config-dir ./config --delete-all-blocks
cleos wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
特別注意,本文中的其它密碼,KEY都是自定義的, 這裏這個KEY必須是這個串,不得變動。
cd {EOS源碼路徑}/build/contracts cleos -u http://127.0.0.1:8000 set contract eosio eosio.bios/ -p eosio
cleos wallet import --private-key 5JBCqbY4EuwtVxCz4qBMXTGiT1hRr1bEjbZPKM16Q7fgcb8ikEP cleos -u http://127.0.0.1:8000 create account eosio eosio.sudo EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.vpay EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.token EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.bpay EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.msig EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.names EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.ram EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.ramfee EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.saving EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 cleos -u http://127.0.0.1:8000 create account eosio eosio.stake EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831
cleos -u http://127.0.0.1:8000 set contract eosio.token eosio.token cleos -u http://127.0.0.1:8000 push action eosio.token create '["eosio","10000000000.0000 EOS",0,0,0]' -p eosio.token cleos -u http://127.0.0.1:8000 push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio cleos -u http://127.0.0.1:8000 get currency balance eosio.token eosio cleos -u http://127.0.0.1:8000 set contract eosio eosio.msig -p eosio cleos -u http://127.0.0.1:8000 set contract eosio eosio.system -p eosio
其中最後一句, 能夠多執行幾遍,確保輸出相似以下內容,表示合約已經確認,否則後面調用合約建立帳號可能會報錯。
Reading WASM from eosio.system/eosio.system.wasm...
Skipping set code because the new code is the same as the existing code
Skipping set abi because the new abi is the same as the existing abi
no transaction is sent
cleos -u http://127.0.0.1:8000 set contract eosio eosio.sudo -p eosio
cleos -u http://127.0.0.1:8000 system newaccount eosio eosio.bp1 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 --stake-net "20000 EOS" --stake-cpu "20000 EOS" --buy-ram "20000 EOS" cleos -u http://127.0.0.1:8000 system newaccount eosio eosio.bp2 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 --stake-net "20000 EOS" --stake-cpu "20000 EOS" --buy-ram "20000 EOS" cleos -u http://127.0.0.1:8000 system newaccount eosio eosio.bp3 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 EOS8V8fLfYQhjdMLkFzz12YdK3UBCAw8mT7imCiJGfgxTdNs9H831 --stake-net "20000 EOS" --stake-cpu "20000 EOS" --buy-ram "20000 EOS" cleos -u http://127.0.0.1:8000 get account eosio.bp1 cleos -u http://127.0.0.1:8000 get account eosio.bp2 cleos -u http://127.0.0.1:8000 get account eosio.bp3