Steemit Dev Portal: Document Plugin & API List

Repository

https://github.com/steemit/devportal

Site

https://developers.steem.io/

Issue

  • What was the issue(s)?
    As a node operator and/or witness, I would like to know exactly which plugins are required by which API, so I can fine-tune my node's resource requirements.
  • What was the solution?
    Provide information about which APIs require which plugins, and which plugins get enabled automatically.

Once this PR is approved, the devportal site will have the following recipe:

title: Plugin & API List
position: 1
description: Run a `steemd` node with your preferred APIs.
exclude: true
layout: full

This is a list of the plugins, and their associated dependencies, required to enable specific apis.

When setting up the config file steemd will enable the chain, p2p, and webserver plugins regardless of other dependencies.

API's with their respective plugin dependencies

account_by_key_api

  • Purpose: Used to lookup account information based on a public key.
  • Requires: account_by_key
  • Exposed Methods: account_by_key_api.*

Example in chain.ini:

plugin = account_by_key
plugin = account_by_key_api

account_history_api

  • Purpose: Used to lookup account history information.
  • Requires: account_history or account_history_rocksdb
  • Exposed Methods: account_history_api.*

Note, while the account_history_rocksdb plugin is a more efficient, the current implementation does not provide support for condenser_api.get_transaction

Example in chain.ini:

plugin = account_history
plugin = account_history_api

... or ...

plugin = account_history_rocksdb
plugin = account_history_api

block_api

  • Purpose: Used to query values related to the block plugin.
  • Requires: No additional
  • Exposed Methods: block_api.*

Example in chain.ini:

plugin = block_api

condenser_api

  • Purpose: Intended to help ease the transition to AppBase. It is recommended that apps transition away from this API.
  • Requires: database_api (automatic)
  • Optional:
    • account_by_key
    • tags
    • follow
    • market_history
    • account_history
  • Exposed Methods: condenser_api.*

Example in chain.ini:

plugin = account_by_key tags follow market_history account_history
plugin = condenser_api

database_api

  • Purpose: Used to query information about accounts, transactions, and blockchain data.
  • Requires: No additional
  • Exposed Methods: database_api.*

Example in chain.ini:

plugin = database_api

debug_node_api

  • Purpose: Allows all sorts of creative "what-if" experiments with the chain.
  • Requires: debug_node
  • Exposed Methods: debug_node_api.*

Example in chain.ini:

plugin = debug_node
plugin = debug_node_api

follow_api

  • Purpose: Used to lookup information related to reputation and account follow operations.
  • Requires: follow (automatic)
  • Exposed Methods: follow_api.*

Example in chain.ini:

plugin = follow_api

market_history_api

  • Purpose: Used to lookup market history information. Can return the market and trade history of the internal STEEM:SBD market. The order book, recent trades and the market volume is made available through this plugin.
  • Requires: market_history (automatic)
  • Exposed Methods: market_history_api.*

Example in chain.ini:

plugin = market_history_api

network_broadcast_api

  • Purpose: Used to broadcast transactions and blocks.
  • Requires: rc (automatic)
  • Exposed Methods: network_broadcast_api.*

Example in chain.ini:

plugin = network_broadcast_api

rc_api

  • Purpose: Managing of resources - curation rewards, vesting shares, etc.
  • Requires:
    • rc (automatic)
    • database_api (automatic)
  • Exposed Methods: rc_api.*

Example in chain.ini:

plugin = rc_api

reputation_api

  • Purpose: Manage account reputation (relevant to voting on content).
  • Requires: reputation (automatic)
  • Exposed Methods: reputation_api.*

Example in chain.ini:

plugin = reputation_api

tags_api

  • Purpose: Used to lookup information about tags, posts, and discussions as well as votes.
  • Requires: tags (automatic)
  • Exposed Methods: tags_api.*

Example in chain.ini:

plugin = tags_api

transaction_status_api

  • Purpose: Evaluates a transaction status after calling condenser_api.broadcast_transaction
  • Requires:
    • transaction_status (automatic)
    • database_api (automatic)
  • Exposed Methods: transaction_status_api.*

Example in chain.ini:

plugin = transaction_status_api

witness_api (deprecated)

  • Purpose: The witness plugin contains all of the bandwidth logic (replaced by rc). Can access the available bandwidth of an account and current reserve ratio.
  • Requires: rc (automatic)
  • Exposed Methods: witness_api.*

Example in chain.ini:

plugin = witness_api

Notes

Complete changes are detailed here:

https://github.com/steemit/devportal/pull/397/files

GitHub Account

https://github.com/inertia186

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
7 Comments