您正在查看: surou 发布的文章

编译合约没有生成abi文件

如果-o文件名与合同名称不同,则ABI生成失败
比如

struct [[eosio::table, eosio::contract("bcs.ibc")]] extract_token

及此合约文件的名字必须为bcs.ibc.hpp/cpp

https://github.com/EOSIO/eosio.cdt/issues/588

通过合约实现EOS HD 类分层地址

使用场景

有一些充值场景,需要用到类似于BTC HD地址功能,简单来说就是一个账户需要支持多个子地址,然后对应的子地址收账后,都能汇集到该主账户。

EOS分层地址实现

账户体系扩展表 userresext(可发起转账和收款)

index key value
yes account_name bcskillsurou
address 5a6595ecc9cee07ae00e76c926a113a4fd6be324be9e4ec854a1a150c3d80c9e

分层账户地址体系表 hduserres(注意:只用于收款),表数据包含账户体系扩展表数据

index key value
yes address 5a6595ecc9cee07ae00e76c926a113a4fd6be324be9e4ec854a1a150c3d80c9e
account_name bcskillsurou

地址A向地址B转账时,transfer扩展 action执行时接收(from_address,to_address,quantity,memo)

根据from_address查询userresext,找到对应得账户名,根据hduserres找到对用得分层地址。

EOS1.8硬分叉升级后同步节点更新

由于1.8.*和之前的版本的数据不兼容,所以主网升级后,同步节点需要做以下调整

  1. 确保其现有节点正在运行最新的稳定版本(1.7)的nodeos,然后关闭nodeos。
  2. 进行备份并删除数据目录中的blocks/reversible目录,state-history目录和state目录。
  3. 用新版本替换其旧版本的nodeos。
  4. 启动新的Nodeos 1.8发行版,并使其完全从创世开始重播,并赶上与网络同步的步伐。该节点应接收块,并且LIB应该前进。在激活第一个协议升级功能之前,运行v1.8和v1.7的节点将继续在同一网络中共存。

将nodeos从v1.7升级到v1.8时,需要从创世重播。之后,v1.8节点可以照常快速启动和停止,而无需重播。v1.7节点生成的状态目录将与nodeos的v1.8不兼容。版本1便携式快照(由v1.7生成)将与要求版本2便携式快照的v1.8不兼容。

注意点

链程序 需要选用 1.8.1或者1.8.4,中间两个版本有问题,
发帖时,未找到有提供1.8 相关的离线数据包,所以目前只能自己hard-repaly,或者使用快照

感谢eos beijing BP的技术小伙伴回答

unable to find plugin: eosio::wallet_api_plugin

wallet_api_plugin is no longer supported as part of nodeos. Use keosd instead.
https://developers.eos.io/keosd/docs

参考

https://github.com/EOSIO/eos/issues/7833

eos 1.8 启动 mongo_db_plugin 插件 ENABLE_MONGO

./eosio_build.sh -m // 添加参数支持mongo

支持的参数

function usage() {
   printf "Usage: $0 OPTION...
  -P          Build with pinned clang and libcxx
  -o TYPE     Build <Debug|Release|RelWithDebInfo|MinSizeRel> (default: Release)
  -s NAME     Core Symbol Name <1-7 characters> (default: SYS)
  -b DIR      Use pre-built boost in DIR
  -i DIR      Directory to use for installing dependencies & EOSIO (default: $HOME)
  -y          Noninteractive mode (answers yes to every prompt)
  -c          Enable Code Coverage
  -d          Generate Doxygen
  -m          Build MongoDB dependencies
   \\n" "$0" 1>&2
   exit 1
}

https://github.com/EOSIO/eos/blob/51f6a070200c69eb4d82e21aa2f750d43e8491d1/scripts/eosio_build.sh#L35