此笔记仅在本地环境使用。运行环境为Ubuntu。
eos服务建议使用Docker启动。
sudo docker run --rm --name eosio -d -p 8888:8888 -p 9876:9876 \
-v /tmp/work:/work \
-v /tmp/eosio/data:/mnt/dev/data \
-v /tmp/eosio/config:/mnt/dev/config eosio/eos-dev /bin/bash \
-c "nodeos -e -p eosio \
--plugin eosio::wallet_api_plugin \
--plugin eosio::wallet_plugin \
--plugin eosio::producer_plugin \
--plugin eosio::history_plugin \
--plugin eosio::chain_api_plugin \
--plugin eosio::history_api_plugin \
--plugin eosio::http_plugin \
-d /mnt/dev/data \
--config-dir /mnt/dev/config \
--http-server-address=0.0.0.0:8888 \
--access-control-allow-origin=* \
--contracts-console"
sudo docker logs --tail 10 eosio
cleos get info
钱包创建成功后将密码保存好 ,后面解锁钱包会使用到
cleos wallet create -n ${walletName}
cleos create key
这里会返回两个key 一个公钥 一个私钥 要要保存好 后面创建账户的时候需要使用到。
cleos wallet import -n ${walletName} ${private key}
cleos wallet unlock -n ${walletName}
这里需要填写钱包密码
部署智能合约会依附在在写账户上,要创建者几个必要的账户。
accountname:{
"eosio.bpay",
"eosio.msig",
"eosio.name",
"eosio.names",
"eosio.ram",
"eosio.ramfee",
"eosio.saving",
"eosio.stake",
"eosio.token",
"eosio.upay"
}
cleos create account eosio ${accountname} ${onwerkey} ${activekey}
到eos根目录下执行下面的指令
cleos set contract eosio ./build/contracts/eosio.bios/ -p eosio -j
cleos set contract eosio.token ./build/contracts/eosio.token/ -p eosio.token -j
cleos set contract eosio.msig ./build/contracts/eosio.msig/ -p eosio.msig -j
system智能合约的部署一定要在实现了创建代币之后,否则会报错。这里坑有些多
cleos set contract eosio ./build/contracts/eosio.system/ -p eosio -j
代币符号就叫SYS暂时不要去改动,不然后面使用newaccount创建可以投票的账户会报错的。
cleos push action eosio.token create '[ "eosio", "1000000000.0000 SYS"]' -p eosio.token
如果要进行投票 就需要向eosio这个认证账户里发代币 如果eosio里没有代币了,就无法创建的投票账户了。
cleos push action eosio.token issue '[ "user", "100.0000 SYS", "memo" ]' -p eosio -j
cleos push action eosio.token issue '[ "eosio", "100.0000 SYS", "memo" ]' -p eosio -j
用户间也可以进行转账交易
cleos push action eosio.token transfer '[ "user", "tester", "25.0000 SYS", "m" ]' -p user -j
sudo cleos get currency balance eosio.token user SYS
完成了上面的操作后才可以成功创建投票用户,如果报错,看看哪一步没有做,做了在来执行此操作。
cleos system newaccount eosio voter1 ${owerkey} ${activkey} \
--stake-net '10.000 SYS' --stake-cpu '10.000 SYS' --buy-ram '10.000 SYS'
抵押 10.000 个SYS 来租用网络 抵押 10.000 个SYS 来租用 CPU 抵押 10.000 个SYS 来租用 内存
cleos push action eosio.token issue '[ "voter1", "1000.0000 SYS", "issue" ]' -p eosio -j