下载源码
git clone https://github.com/EOSIO/eos --recursive
查看版本
git tag
切换最新版本分支
git checkout v1.2.1
执行脚本
cd /www/eos-env/eos/
sudo ./eosio_build.sh
开始执行时,会下载很多的东西,包括boost、mongodb、secp256k1、LLVM等
sudo ./eosio_install.sh
修改配置文件
cd ~/.local/share/eosio/nodeos/config
vim config.ini
http-server-address = 0.0.0.0:8888
contracts-console = true
enable-stale-production = true
producer-name = eosio
private-key = ["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::history_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin
启动EOS
cd /www/eos-env/eos
vim start.sh
nohup nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin --contracts-console &
chmod 777 start.sh
-e:enable-stale-production,参加上面config.ini的相关说明。设置以后相当于true。
-p:producer-name,给定了一个名字“eosio”用于出块者名字。
--plugin:就是~/.local/share/eosio/nodeos/config/config.ini最后一个配置字段。
--contracts-console 打印日志到控制台
因为config.ini中配置plugin,所以可以只使用nodeos启动
nohup nodeos &
节点正常运行。。。。
创建智能合约
创建智能合约
eosiocpp -n helloworld
编译wast
eosiocpp -o helloworld/helloworld.wast helloworld/helloworld.cpp
编译abi
eosiocpp -g helloworld/helloworld.abi helloworld/helloworld.cpp
部署智能合约
创建钱包
cleos wallet create -n fish1208 --to-console
Creating wallet: fish1208
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5KiK9GU2TVo2TpA9Ragpzygj8s54AiCxBi2gDVzgUzWZCxbHZsS"
导入初始账户eosio的主秘钥到钱包
cleos wallet import -n fish1208 --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
imported private key for: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
所有新的blockchains,都是通过主秘钥启动,唯一初始账户:eosio。要与区块链交互,需要将这个初始账户的私钥导入到你的钱包。
查看钱包
cleos wallet list
带*表示钱包解锁;不带*表示钱包加锁
创建key
cleos create key --to-console
Private key: 5JZEmy65HqCu1iobB98hA7ca1NYzRtK28gqWyonC25cUA54EmJS
Public key: EOS8jdARRTMt1gFkKJwccdCPnkXJDi2b3sJSQuY3Db7whEBhFaF2X
将Private key导入钱包
cleos wallet import -n fish1208 --private-key 5JZEmy65HqCu1iobB98hA7ca1NYzRtK28gqWyonC25cUA54EmJS
imported private key for: EOS8jdARRTMt1gFkKJwccdCPnkXJDi2b3sJSQuY3Db7whEBhFaF2X
查看Private key导入情况
cleos wallet keys
创建用户账户
cleos create account eosio fish EOS8jdARRTMt1gFkKJwccdCPnkXJDi2b3sJSQuY3Db7whEBhFaF2X EOS8jdARRTMt1gFkKJwccdCPnkXJDi2b3sJSQuY3Db7whEBhFaF2X
将智能合约绑定到账号
cleos set contract fish hello -p fish
hello文件夹,里面有合约的所有文件.cpp .abi .wast
hello -p fish指定路径,指定加密账户
执行智能合约函数
cleos push action fish hi '["1234"]' -p fish
调用hello合约中的hi函数
钱包解锁
cleos wallet unlock -n fish1208 --password PW5KiK9GU2TVo2TpA9Ragpzygj8s54AiCxBi2gDVzgUzWZCxbHZsS
钱包加锁
cleos wallet lock -n fish1208