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()