Skip to content

Commit

Permalink
1.0.4
Browse files Browse the repository at this point in the history
- Renamed to Antelope BP Information Standard
- make `full` required on node params
  • Loading branch information
igorls committed Apr 15, 2024
1 parent f32e3f5 commit 1792b97
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 76 deletions.
121 changes: 67 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
# EOSIO BP Information Standard
**JSON Standard for Block Producer Information on EOSIO Blockchains**
# Antelope BP Information Standard

This is a proposed standard for Block Producer candidates to publish as the URL field of the `regproducer` action on the `eosio.system` contract.
**JSON Standard for Block Producer Information on Antelope (former EOSIO) Blockchains**

The current revision **v1.0.2** is compliant with the JSON schema [Draft 2019-09](https://json-schema.org/specification-links.html#2019-09-formerly-known-as-draft-8)
This is a proposed standard for Block Producer candidates to publish as the URL field of the `regproducer` action on
the `eosio.system` contract.

The current revision **v1.0.4** is compliant with the JSON
schema [Draft 2019-09](https://json-schema.org/specification-links.html#2019-09-formerly-known-as-draft-8)

- producer_account_name: Name of producer account
- org: {Object}
- candidate_name: Producer/organization name
- website: Block producer website
- code_of_conduct: Full URL to page,
- ownership_disclosure: Full URL to page,
- email: Contact email
- github_user: Operational github username (or array or usernames)
- chain_resources: Website with chain related resources (snapshots & backups)
- other_resources: [Array] - List of other relevant URLs
- branding: {Object} - Logo images
- logo_256: Entire url to image 256x256px
- logo_1024: Entire url to image 1024x1024px
- logo_svg: Entire url to image svg
- location: {Object} - Organization location
- name: Location in human readable format [City, State]
- country: Country code [XX] in accordance to [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
- latitude: Latitude in decimal degrees
- longitude: Longitude in decimal degrees
},
- social: {Object} - NOT THE ENTIRE URL, only usernames on social networks,
- keybase: Username
- telegram: Username or group
- twitter: Username
- github: Username
- youtube: Channel address
- facebook: Page/group address
- hive: Username without @
- reddit: Username
- wechat: Username
- candidate_name: Producer/organization name
- website: Block producer website
- code_of_conduct: Full URL to page,
- ownership_disclosure: Full URL to page,
- email: Contact email
- github_user: Operational GitHub username (or array or usernames)
- chain_resources: Website with chain related resources (snapshots & backups)
- other_resources: [Array] - List of other relevant URLs
- branding: {Object} - Logo images
- logo_256: Entire url to image 256x256px
- logo_1024: Entire url to image 1024x1024px
- logo_svg: Entire url to image svg
- location: {Object} - Organization location
- name: Location in human-readable format [City, State]
- country: Country code [XX] in accordance
to [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
- latitude: Latitude in decimal degrees
- longitude: Longitude in decimal degrees
},
- social: {Object} - NOT THE ENTIRE URL, only usernames on social networks,
- keybase: Username
- telegram: Username or group
- twitter: Username
- github: Username
- youtube: Channel address
- facebook: Page/group address
- hive: Username without @
- reddit: Username
- wechat: Username
- nodes: [Array]
- location: Node location
- name: Node location in human-readable format [City, State]
Expand All @@ -46,18 +50,23 @@ The current revision **v1.0.2** is compliant with the JSON schema [Draft 2019-09
- query: Node that provides HTTP(S) APIs to the public
- seed: Node that provides P2P access to the public
- full: `true/false` Indicates if the data is provided since the first block or trimmed at some point
- p2p_endpoint: EOSIO P2P endpoint `host:port`
- api_endpoint: EOSIO HTTP endpoint `http://host:port`
- ssl_endpoint: EOSIO HTTPS endpoint `https://host:port`
- p2p_endpoint: Leap P2P endpoint `host:port`
- api_endpoint: Leap/Service HTTP endpoint `http://host:port`
- ssl_endpoint: Leap/Service HTTPS endpoint `https://host:port`
- features: [Array]
- features supported by the `api_endpoint` or `ssl_endpoint` on query nodes, refer to the [list of features](https://github.com/eosrio/bp-info-standard#api-features)
- features supported by the `api_endpoint` or `ssl_endpoint` on query nodes, refer to
the [list of features](https://github.com/eosrio/bp-info-standard#api-features)

### How to use it if you are Block Producer Candidate

### How to use it if you are Block Producer Candidate
Create a file named `bp.json` in the root of your domain. For instance `https://yourwebsite.com/bp.json` When you register your producer using the `system.regproducer` action, the url field should be filled with `https://yourwebsite.com`. **Do not put the bp.json file in the url.**
Create a file named `bp.json` in the root of your domain. For instance `https://yourwebsite.com/bp.json` When you
register your producer using the `system.regproducer` action, the url field should be filled
with `https://yourwebsite.com`. **Do not put the bp.json file in the url.**

### Overriding data for specific chains

The recommended way to specify multiple bp.json files under the same domain is to use the a `chains.json` file pointing to each `<chain>.json` file according to the chain_id, for example:
The recommended way to specify multiple bp.json files under the same domain is to use the a `chains.json` file pointing
to each `<chain>.json` file according to the chain_id, for example:

```json
{
Expand All @@ -66,7 +75,7 @@ The recommended way to specify multiple bp.json files under the same domain is t
"1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4": "/wax.json",
"4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11": "/telos.json",
"21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c": "/fio.json",
"d5a3d18fbb3c084e3b1f3fa98c21014b5f3db536cc15d08f9f6479517c6a3d86": "/bos.json",
"38b1d7815474d0c60683ecbea321d723e83f5da6ae5f1c1f9fecc69d9ba96465": "/libre.json",
"0000000000000000000000000000000000000000000000000000000000000123": "/other_chain.json"
}
}
Expand All @@ -87,23 +96,27 @@ You can also override properties of the base `bp.json` file by creating a chain
----bp.aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906.json
```

The `bp.json` and `bp.${chain_id}.json` will be merged and any property inside of the chain specific json file will override the base properties.
The `bp.json` and `bp.${chain_id}.json` will be merged and any property inside of the chain specific json file will
override the base properties.

### API Features

For query type nodes one or more features from the list below must be added:
- `chain-api`: basic eosio::chain_api_plugin (/v1/chain/*)
- `account-query`: (/v1/chain/get_accounts_by_authorizers)
- `history-v1`: (/v1/history/*)
- `hyperion-v2`: (/v2/*)
- `dfuse`
- `fio-api`
- `snapshot-api`
- `dsp-api`
- `atomic-assets-api`
- `light-api`
- `ipfs`
- `firehose`
- `substreams`

- `chain-api`: basic eosio::chain_api_plugin (/v1/chain/*)
- `account-query`: (/v1/chain/get_accounts_by_authorizers)
- `history-v1`: (/v1/history/*)
- `hyperion-v2`: (/v2/*)
- `dfuse`
- `fio-api`
- `snapshot-api`
- `dsp-api`
- `atomic-assets-api`
- `light-api`
- `ipfs`
- `firehose`
- `substreams`

### Useful Links

One can check for data validity using: https://www.jsonschemavalidator.net/
26 changes: 13 additions & 13 deletions bp.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
"org": {
"candidate_name": "",
"website": "",
"code_of_conduct":"",
"ownership_disclosure":"",
"email":"",
"github_user":"",
"code_of_conduct": "",
"ownership_disclosure": "",
"email": "",
"github_user": "",
"chain_resources": "",
"other_resources": [],
"branding":{
"logo_256":"",
"logo_1024":"",
"logo_svg":""
"branding": {
"logo_256": "",
"logo_1024": "",
"logo_svg": ""
},
"location": {
"name": "",
Expand All @@ -24,12 +24,12 @@
"keybase": "",
"telegram": "",
"twitter": "",
"github":"",
"github": "",
"youtube": "",
"facebook": "",
"hive": "",
"reddit": "",
"wechat":""
"wechat": ""
}
},
"nodes": [
Expand All @@ -54,7 +54,7 @@
"longitude": 0
},
"full": true,
"node_type":"seed",
"node_type": "seed",
"p2p_endpoint": "",
"api_endpoint": "",
"ssl_endpoint": ""
Expand All @@ -67,12 +67,12 @@
"longitude": 0
},
"full": true,
"node_type":"query",
"node_type": "query",
"p2p_endpoint": "",
"api_endpoint": "",
"ssl_endpoint": "",
"features": [
"chain_api"
"chain-api"
]
}
]
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bp-info-standard",
"version": "1.0.3",
"version": "1.0.4",
"description": "**JSON Standard for Block Producer Information on the EOS Blockchain**",
"main": "index.js",
"repository": {
Expand Down
25 changes: 17 additions & 8 deletions schema.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"title": "BlockProducer",
"description": "Information about a block producer on EOSIO blockchains",
"description": "Information about a block producer on AntelopeIO blockchains",
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$defs": {
"location": {
Expand Down Expand Up @@ -125,7 +125,7 @@
},
"branding": {
"type": "object",
"properties":{
"properties": {
"logo_256": {
"$ref": "#/$defs/optional_url",
"description": "Link to Organization logo [PNG format, 256x256]"
Expand Down Expand Up @@ -214,7 +214,8 @@
"items": {
"type": "object",
"required": [
"node_type"
"node_type",
"full"
],
"properties": {
"location": {
Expand All @@ -229,12 +230,20 @@
"uniqueItems": true,
"items": {
"type": "string",
"enum": ["producer", "query", "seed"]
"enum": [
"producer",
"query",
"seed"
]
}
},
{
"type": "string",
"enum": ["producer", "query", "seed"]
"enum": [
"producer",
"query",
"seed"
]
}
]
},
Expand All @@ -243,11 +252,11 @@
"type": "boolean"
},
"p2p_endpoint": {
"description": "EOSIO P2P endpoint (host:port)",
"description": "Leap P2P endpoint (host:port)",
"type": "string"
},
"api_endpoint": {
"description": "EOSIO HTTP endpoint (http://host:port)",
"description": "Service HTTP endpoint (http://host:port)",
"type": "string",
"if": {
"pattern": ".+"
Expand All @@ -258,7 +267,7 @@
}
},
"ssl_endpoint": {
"description": "EOSIO HTTPS endpoint (https://host:port)",
"description": "Service HTTPS endpoint (https://host:port)",
"type": "string",
"if": {
"pattern": ".+"
Expand Down

0 comments on commit 1792b97

Please sign in to comment.