更新 ~/.local/share/eosio/nodeos/config/config.ini
修改或添加
http-validate-host=false
或者 nodeos 启动时添加参数 --http-validate-host=false
更新 ~/.local/share/eosio/nodeos/config/config.ini
修改或添加
http-validate-host=false
或者 nodeos 启动时添加参数 --http-validate-host=false
kill 命令再次执行时会导致以下错误。
pkill -9 nodeos or kill -9 {pid}
database dirty flag set (likely due to unclean shutdown): replay required
当重新运行nodeos时,必须使用--replay-blockchain命令忽略它。
让我们安全的结束nodeos 进程
This appears to be two different issues.
Startup after a crash or ungraceful shutdown nearly always fails due to corruption of the boost shared memory cache of the in-memory database. --resync is required to clean up the mess.
For normal shutdown, never kill with -9. Always use either the default (no argument) signal (which is SIGTERM) or SIGINT. Numerically, those are 15 and 2, respectively.
pkill nodeos | Safe
pkill -15 nodeos | Safe
pkill -2 nodeos | Safe
pkill -TERM nodeos | Safe
pkill -SIGTERM nodeos | Safe
pkill -INT nodeos | Safe
pkill -SIGINT nodeos | Safe
pkill -9 nodeos | Not Safe
pkill -KILL nodeos | Not Safe
pkill -SIGKILL nodeos | Not Safe
The core dump is a different problem. That looks like a corrupted network packet, specifically a signed_block_summary. Summary messages are being eliminated from the protocol, so this particular error will no longer be possible soon.
参考自:github
root@ubuntu:~/eos/build/tools# ./eosiocpp -o ../contracts/hello/hello.wast ../contracts/hello/hello.cpp
../hello/hello.cpp:3:10: fatal error: 'eosiolib/eosio.hpp' file not found #include ^~~~~~~~~~~~~~~~~~~~ 1 error generated.
root@ubuntu:~/eos/build/tools#
解决此问题方案如下
cd eos_source/build
,执行 sudo make install
cd ../contracts/hello/
切换到hello 合约目录eosiocpp
前的./
,修改为 eosiocpp -o hello.wast hello.cpp
打开 ~/.bashrc
vi ~/.bashrc
在文件最后添加
#set eosio path
export EOSIO_PATH=/usr/local/eosio/bin
export PATH=$EOSIO_PATH:$PATH
终端执行以下命令,添加立即生效
source ~/.bashrc
执行代码如下
root@iZj6cgy98yiuluw41gz0aoZ:~/.local/share/eosio/nodeos/config# cleos system delegatebw dappplaynode dappplaynode '10000000.0000 EOS' '10000000.0000 EOS' --transfer
2018-07-20T12:15:24.339 thread-0 main.cpp:438 create_action ] result: {"binargs":"a0129ddec45aab49a0129ddec45aab4900e876481700000004454f530000000000e876481700000004454f530000000001"} arg: {"code":"eosio","action":"delegatebw","args":{"from":"dappplaynode","receiver":"dappplaynode","stake_net_quantity":"10000000.0000 EOS","stake_cpu_quantity":"10000000.0000 EOS","transfer":true}}
Error 3050003: eosio_assert_message assertion failure
查看代码
eos\contracts\eosio.system\delegate_bandwidth.cpp
void system_contract::changebw( account_name from, account_name receiver,
const asset stake_net_delta, const asset stake_cpu_delta, bool transfer )
{
......
// net and cpu are same sign by assertions in delegatebw and undelegatebw
// redundant assertion also at start of changebw to protect against misuse of changebw
bool is_undelegating = (net_balance.amount + cpu_balance.amount ) < 0;
bool is_delegating_to_self = (!transfer && from == receiver);
if( is_delegating_to_self || is_undelegating ) {
.......
}
抵押时不能再添加 --transfer
(此参数添加时,是说抵押同时将币的所有权转给接收者,但自己已经有所有权了,不能自己再转给自己)
EOS之前的版本,如果~/.local/share/eosio/nodeos/config/genesis.json
不存在的话,
会自动在此目录创建初始化的genesis.json
,每次nodeos 运行也会自动读取genesis.json
之后版本默认不会再已文件的形式创建初始化的genesis.json
,(可查看相关代码)。程序也不会再自动读取genesis.json
,
当需要时自己手动通过--genesis-json
传入。这样可避免不必要的数据冲突。
相关文章: