经验分享 如何向 EOSIO/EOS 中添加插件 (plugin)

yiyanwannian · August 08, 2019 · Last by strahe replied at August 08, 2019 · 662 hits

EOSIO/EOS的源码结构为 plugin 模式, 整个项目由多个 plugin 加载运行,主要 plugin: chain_plugin, net_plugin, producer_plugin, chain_api_plugin, http_plugin, http_client_plugin. 各个 plugin 有独立的功能,也能相互依赖引用, 可以去 eosio/eos/programs/nodeos 下调试阅读

如何在 eos 中添加自定义的 plugin 呢?

  1. 进入 eos 项目根目录(eos 目录下)

  2. 进入 plugins 目录下,可以看到有一个 eosio-make_new_plugin.sh shell 文件

    cd plugins && ls -l
    
  3. 生成自定义的 plugin,(我用 yiyanwannian_plugin 作为示例)

    ./eosio-make_new_plugin.sh yiyanwannian_plugin
    

    输出: 并且生成 yiyanwannian_plugin 文件夹, 以及插件必要文件:

  4. 在 plugins 文件夹下面的 CMakeLists.txt 中添加 add_subdirectory(yiyanwannian_plugin):

  5. 在 nodeos 下的 CMakeLists.txt 中添加 PRIVATE -Wl,${whole_archive_flag} yiyanwannian_plugin -Wl,${no_whole_archive_flag} :

  6. 到这里要做的改动就完成了,但是如果要使你的 plugin 能运行,需要在运行的时候填上 --plugin eosio::yiyanwannian_plugin :

  7. 运行前还请在 eos 项目跟目录下运行 ./scripts/eosio_build.sh, 等待编译完成即可 :

./scripts/eosio_build.sh 
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up