是因为 nodeos 已经在运行了,执行
pkill nodeos
是因为 nodeos 已经在运行了,执行
pkill nodeos
获取EOS代码 `git clone https://github.com/eosio/eos --recursive`
更新子模块 `git submodule update --init --recursive`
执行sh 自动安装 `cd eos` `./eosio_build.sh`
安装会先自动判断系统硬件是否符合安装条件及系统版本是否支持。
漫长等待,半小时左右,网络不好的话,40 - 50分钟。
编译完成后 `cd eos/build` 执行 `sudo make install` 否则会提示各种程序无法找到问题
常见问题
如果编译EOS出现以下错误
Checking for LLVM with WASM support. Installing LLVM & WASM fatal: destination path 'llvm' already exists and is not an empty directory. Unable to clone llvm repo @ https://github.com/llvm-mirror/llvm.git. Exiting now.
解决方案
cd /opt rm -rf llvm cd /tmp root@DESKTOP-H6EG47U:/tmp# rm -rf llvm-compiler/
static void inline_transfer( account_name from, account_name to, extended_asset amount, string memo = string(), permission_name perm = N(active) ) {
action act( permission_level( from, perm ), amount.contract, N(transfer), transfer{from,to,amount,memo} );
act.send();
}
解释:from,to分别是转账者,接收者。amount是一种扩展资产结构,结构内contract字段为资产属于那个合约。我们要实现内部调用EOS币转账功能,所以contranct应该设置成 N(eosio.token)
调用方式:
extended_asset amount(100,S(4,EOS));
amount.contranct = N(eosio.token);
cuurency::inline_transfer(from,to,amount);
action(
permission_level{ _self, N(active) },
N(eosio.token), N(transfer), //调用 eosio.token 的 Transfer 合约
std::make_tuple(_self, to, quantity, std::string(""))).send();
执行代码
cleos system newaccount eosio dapp.exec2 EOS7D6Kdkugbg6ACgrGg17yPhDWXDbfHZfVcSmez84ph94NGsf2F6 EOS7D6Kdkugbg6ACgrGg17yPhDWXDbfHZfVcSmez84ph94NGsf2F6 --stake-net '50.00 SYS' --stake-cpu '50.00 SYS'
提示
ERROR: Either --buy-ram or --buy-ram-kbytes with non-zero value is required
在命令行尾部添加 --buy-ram-kbytes 10000
cleos system newaccount eosio dapp.exec2 EOS7D6Kdkugbg6ACgrGg17yPhDWXDbfHZfVcSmez84ph94NGsf2F6 EOS7D6Kdkugbg6ACgrGg17yPhDWXDbfHZfVcSmez84ph94NGsf2F6 --stake-net '50.00 SYS' --stake-cpu '50.00 SYS' --buy-ram-kbytes 10000