Telos: bp.json

mark-cohen edited this page Dec 20, 2018 · 44 revisions

Telos Block Producer Information Standard

This is the recommended structure for Telos Block Producer candidates to utilize so as to meet the requirements as per the Telos regproducer contract, and provide a means for the various tools to query and report on Block Producers statistics.

The intent of this augmentation to the proposed standard is to allow for compatibility with existing tools, while addressing the reality of BP's supporting multiple chains. While the example below includes information for 3 chains, Telos, EOS, and Worbli - simply remove any duplicate info if supporting only one chain, and add/update any necessary info for the chains you're supporting.

chains.json:

Instructions - chains.json:

  1. Copy/paste the information below into a text editor, replacing the placeholder values with your producer's information while retaining the JSON structure.
  2. Copy/paste the updated information into a JSON validator to make sure its adheres to the JSON standard.
  3. Once validated, copy/paste the updated information (containing your producer's information) from the previous steps, into a file named chains.json, and place it at the root of your producer's domain, ie: http://blockproducer.com/chains.json.
  4. When registering your producer using the regproducer action, the url value should contain the full path to the folder that contains the Telos bp.json, ie: http://blockproducer.com/telos.

To get the chain ID, simply query an API node on the appropriate chain as follows, and look for the resulting chain_id value

curl 'http://api.blockproducer.com:8888/v1/chain/get_info' | jq

chains.json - start copy below this line

{
   "chains": {
      "EOS_chainId_1234...": "/bp.json",
      "Telos_chainId_1234...": "/telos/bp.json",
      "Worbli_chainId_1234...": "/worbli/bp.json"
   },
   "additional info1": "allows for the addition of future relevant info",
   "additional info2": "future ready...",
}

end copy above this line.

bp.json:

While the "chains.json" file acts as a map as to where to find chain specific information, the "bp.json" file is where that chain specific information is actually contained.

Instructions - bp.json:

  1. Copy/paste the information below into a text editor, replacing the placeholder values with your producer's information while retaining the JSON structure.
  2. Copy/paste the updated information into a JSON validator to make sure its adheres to the JSON standard.
  3. Once validated, copy/paste the updated information (containing your producer's information) from the previous steps, into a file named bp.json, and place it at the appropriate chain specific path in your producer's domain that corresponds to the path specified in your "chains.json" file. ie: for Telos: http://blockproducer.com/telos/bp.json.
  4. Repeat the previous 3 steps for each chain you support.

bp.json - start copy below this line

{
  "producer_account_name": "blockproducer",
  "producer_public_key": "Key: PUBLICKEY",
  "org": {
    "candidate_name": "Telos-BlockProducer",
    "website": "https://www.blockproducer.com/",
    "code_of_conduct": "https://www.blockproducer.com/coc",
    "ownership_disclosure": "https://www.blockproducer.com/ownership",
    "email": "info@blockproducer.com",
    "phone":"1-234-567-8900",
    "branding": {
      "logo_256": "https://www.blockproducer.com/images/logo_256x256.png",
      "logo_1024": "https://www.blockproducer.com/images/logo_1024x1024.png",
      "logo_svg": "https://www.blockproducer.com/images/logo_128x128.svg"
    },
    "location": {
      "name": "City",
      "country": "Country",
      "latitude": 10.4896813,
      "longitude": -66.9294377
    },
    "social": {
      "steemit": "blockproducer",
      "twitter": "blockproducer",
      "youtube": "blockproducer",
      "facebook": "",
      "github": "blockproducer",
      "reddit": "",
      "keybase": "",
      "telegram": "blockproducer",
      "wechat": ""
    }
  },
  "nodes": [
    {
      "location": {
        "name": "City",
        "country": "Country",
        "latitude": 12.34567,
        "longitude": -123.456789
      },
      "node_type": "producer"
    },
    {
      "location": {
        "name": "City",
        "country": "Country",
        "latitude": 12.34567,
        "longitude": -123.456789
      },
      "node_type": "seed",
      "p2p_endpoint": "p2p.telos.blockproducer.com:9876"
    },
    {
      "location": {
        "name": "City",
        "country": "Country",
        "latitude": 12.34567,
        "longitude": -123.456789
      },
      "node_type": "full",
      "api_endpoint": "http://api.telos.blockproducer.com/",
      "ssl_endpoint": "https://api.telos.blockproducer.com/"
    }
  ]
}

bp.json - end copy above this line

Useful Links

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.