Plugins

BitShares has prepared several plugins. The below list shows current BitShares plugins categories and plugin’s names. You can find more information in BitShartes Github - BitShares Plugins ReadMe.

A plugin adds a specific feature to an existing program. In BitShares, witness, account_history, market_history, and grouped_orders plugins are available as a default. However, you should specify plugin(s) for your purpose to run a node. You can define specific plugin(s) to activate when you start the node in a configuration file:

#-- Section to modify in a config.ini file --

    # Space-separated list of plugins to activate
    # plugins =

Categories and plugins’ names

History

account_history

  • account_history_plugin.cpp

  • account_history_plugin.hpp

elasticsearch

  • elasticsearch_plugin.cpp

  • elasticsearch_plugin.hpp

es_objects

  • es_objects.cpp

  • es_objects.hpp


Business

delayed_node

  • delayed_node_plugin.hpp

  • delayed_node_plugin.hpp


Market Data

market_history

  • market_history_plugin.cpp

  • market_history_plugin.hpp

grouped_objects

  • grouped_orders_plugin.cpp

  • grouped_orders_plugin.hpp


Block Producer

witness

  • witness.cpp

  • witness.hpp


Debug

debug_witness

  • debug_api.cpp

  • debug_witness.cpp

snapshot

  • snapshot.cpp

  • snapshot.hpp



plugins code flowchart

The below shares plugins methods and processes.

witness_plugin methods and flow

(Created: 2018-11-24)

#

File name

name

../libraries/plugins/witness/witness.cpp

included several methods below (pdf)

  • new_chain_banner()

  • plugin_set_program_options()

  • plugin_initialize()

  • plugin_startup()

  • shutdown()

  • stop_block_production()

  • refresh_witness_key_cache()

  • schedule_production_loop()

  • block_production_loop()

  • maybe_produce)block()