Steemit Dev Portal: Document Plugin & API List

in #utopian-io7 years ago

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

Sort:  

Thank you for your contribution.
Although this documentation work is essential and thank you for that, yet in itself does not represent a tutorial, more so "documentation work".

The PR hasn't been merged yet so from a documentation perspective this cannot yet be labelled as such from a utopian review perspective.

You could have adjusted this to a tutorial by providing some real tutorial content in additional to the standard documentation, i.e. by showcasing detailed examples of how the user could utilize those functions in real examples, using any language of your choice.

I suggest you would take every few of those documentation elements, and compile a relevant tutorial which would definitely be helpful to the community as a whole, if you wish to do so.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

All good points. I'm with you. I may just be jumping the gun, including this before it's merged. I debated using the #blog tag, as in, "here's what I've documented."

Unfortunately, I'm just not sure if there's any priority at Steemit, Inc. to merge stuff like this at the moment.

Thank you for your review, @mcfarhat! Keep up the good work!

Hi @inertia!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 6.474 which ranks you at #164 across all Steem accounts.
Your rank has improved 1 places in the last three days (old rank 165).

In our last Algorithmic Curation Round, consisting of 239 contributions, your post is ranked at #15.

Evaluation of your UA score:
  • You've built up a nice network.
  • The readers appreciate your great work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

Hi, @inertia!

You just got a 3.11% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

This post was upvoted by SteeveBot!

SteeveBot regularly upvotes stories that are appreciated by the community around Steeve, an AI-powered Steem interface.

This post has been included in today's SOS Daily News - a digest of all you need to know about the State of Steem.