【EOSIO/appbase】node
AppBase是EOSIO開源一個plugins架構程序框架,被應用於 EOS nodeos中。AppBase manages the plugin life-cycle and ensures that all plugins are configured, initialized, started, and shutdown in the proper order.git
AppBase使用了 boost::program_options 庫,以及 boost::asio 庫。github
一、KeyFeatures架構
二、示例app
class net_plugin : public appbase::plugin<net_plugin> { public: net_plugin(){}; ~net_plugin(){}; APPBASE_PLUGIN_REQUIRES( (chain_plugin) ); virtual void set_program_options( options_description& cli, options_description& cfg ) override { cfg.add_options() ("listen-endpoint", bpo::value<string>()->default_value( "127.0.0.1:9876" ), "The local IP address and port to listen for incoming connections.") ("remote-endpoint", bpo::value< vector<string> >()->composing(), "The IP address and port of a remote peer to sync with.") ("public-endpoint", bpo::value<string>()->default_value( "0.0.0.0:9876" ), "The public IP address and port that should be advertized to peers.") ; } void plugin_initialize( const variables_map& options ) { std::cout << "initialize net plugin\n"; } void plugin_startup() { std::cout << "starting net plugin \n"; } void plugin_shutdown() { std::cout << "shutdown net plugin \n"; } };
參考:框架
一、https://github.com/EOSIO/appbaseide
二、spa