From 1792b97adeaf3a4dd71a5efc470f4042d03fdc26 Mon Sep 17 00:00:00 2001 From: Igor Lins e Silva <4753812+igorls@users.noreply.github.com> Date: Mon, 15 Apr 2024 02:34:05 -0300 Subject: [PATCH] 1.0.4 - Renamed to Antelope BP Information Standard - make `full` required on node params --- README.md | 121 ++++++++++++++++++++++++++++----------------------- bp.json | 26 +++++------ package.json | 2 +- schema.json | 25 +++++++---- 4 files changed, 98 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index ab05aea..ec802b3 100644 --- a/README.md +++ b/README.md @@ -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] @@ -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 `.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 `.json` file according to the chain_id, for example: ```json { @@ -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" } } @@ -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/ diff --git a/bp.json b/bp.json index 5c0464d..79ba2b4 100644 --- a/bp.json +++ b/bp.json @@ -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": "", @@ -24,12 +24,12 @@ "keybase": "", "telegram": "", "twitter": "", - "github":"", + "github": "", "youtube": "", "facebook": "", "hive": "", "reddit": "", - "wechat":"" + "wechat": "" } }, "nodes": [ @@ -54,7 +54,7 @@ "longitude": 0 }, "full": true, - "node_type":"seed", + "node_type": "seed", "p2p_endpoint": "", "api_endpoint": "", "ssl_endpoint": "" @@ -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" ] } ] diff --git a/package.json b/package.json index 7b430a2..a03dd69 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/schema.json b/schema.json index 53d4c5b..a62a99c 100644 --- a/schema.json +++ b/schema.json @@ -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": { @@ -125,7 +125,7 @@ }, "branding": { "type": "object", - "properties":{ + "properties": { "logo_256": { "$ref": "#/$defs/optional_url", "description": "Link to Organization logo [PNG format, 256x256]" @@ -214,7 +214,8 @@ "items": { "type": "object", "required": [ - "node_type" + "node_type", + "full" ], "properties": { "location": { @@ -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" + ] } ] }, @@ -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": ".+" @@ -258,7 +267,7 @@ } }, "ssl_endpoint": { - "description": "EOSIO HTTPS endpoint (https://host:port)", + "description": "Service HTTPS endpoint (https://host:port)", "type": "string", "if": { "pattern": ".+"