An EOS Smart Contract for Block Producer Information by greymass

View this thread on steempeak.com
· @greymass · (edited)
An EOS Smart Contract for Block Producer Information
There is a long road ahead of us on EOS with both developing and enforcing Block Producer standards. However, one improvement that many of us can agree on right now, is that it's time we all started putting our information on-chain, rather than only on our websites.

Currently, most Block Producers are following a standard "bp.json" format ([see here](https://github.com/eosrio/bp-info-standard)), to explain extended information about their candidacy. For example, [you can see ours here](https://greymass.com/bp.json). However, with this information only being on a candidates website, we run the risk of issues such as public defacing, DNS changes, non-verifiability, and more.

The solution to these issues is simple: store this information on-chain, signed by the producer themselves. Doing so brings multiple new benefits as well: we can have dApps parse all block producer candidates' json files, we will have a verifiable history of changes, and finally we allow validators to have a single consistent place to look up all candidates' publicly posted information (rather than scraping individual websites).

In order to help facilitate the transition to storing this information on chain, we have created, purchased RAM for, and deployed a new smart contract `producerjson` that enables this. We now open it for peer review, feedback and suggestions, and if desired -- immediate use.

### See The Contract

The contract code is open source here:
https://github.com/greymass/producerjson

As you will see, the code itself is fairly simple -- it does not attempt to validate the contents of the producer's json at this time. This choice was made in order to allow external validators to be as strict or relaxed as they choose to be when grading a given producers information, as well as allow quick changes to the BP standard format without a contract update.

### Try It Out

Pushing your `bp.json` file on chain is a simple two step process. Just grab your `bp.json` file, and push it to the blockchain with a cleos command like our example:
```
cleos push action producerjson set '{"owner":"teamgreymass", "json": "'`printf %q $(cat bp.json | tr -d "\r")`'"}' -p teamgreymass@active
```
 
[Here's the result of that action, on the blockchain.](https://bloks.io/transaction/8fc6206c74cbd6acbf17dfb2177783686f8faffa6b9c87bd30f59ee6646b1708)

As you can see, your information will be published to the chain in the `producerjson` table right away. You can see yours and everyone else's information with one simple command:
```
cleos get table producerjson producerjson producerjson
```
 
It takes about 1.5 kB of RAM to store a bp.json, which is not expensive at all -- this is less than creating a new account. Due to it being so cheap and easy, we hope everyone will join us in putting their information on-chain, organized and verifiable for the public to see.


### Future Contract Changes

If this standard takes off, we are happy to convert this contract account into a multi-sig account and allow shared control with other top Block Producers. This would slow down any required changes to the contract, but also ensure the longevity of it.

Any feedback is welcome, and we'd love to see any recommendations on how to modify the contract. Feel free to comment below, or contact us on telegram!

---
---

This project is an effort lead by Team Greymass, a Block Producer candidate for EOS. If you like what we're doing, don't forget to vote for `teamgreymass` on EOS!

![](https://steemitimages.com/0x0/https://greymass.com/logo.png)
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
👎  
properties (23)
post_id57,130,287
authorgreymass
permlinkan-eos-smart-contract-for-block-producer-information
categoryeos
json_metadata{"image":["https:\/\/steemitimages.com\/0x0\/https:\/\/greymass.com\/logo.png"],"links":["https:\/\/github.com\/eosrio\/bp-info-standard","https:\/\/greymass.com\/bp.json","https:\/\/github.com\/greymass\/producerjson","https:\/\/bloks.io\/transaction\/8fc6206c74cbd6acbf17dfb2177783686f8faffa6b9c87bd30f59ee6646b1708"],"format":"markdown","app":"steemit\/0.1","tags":["eos","bp"]}
created2018-07-20 06:14:18
last_update2018-07-20 08:24:33
depth0
children24
net_rshares13,251,321,970,701
last_payout2018-07-27 06:14:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length3,555
author_reputation9,332,543,007,969
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout0.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (32)
@lukestokes ·
From <a href="https://t.me/EOSPros/48611">our Telegram chat</a>:

Luke Stokes, [Jul 20, 2018 at 12:30:20 PM]:
Looking at this and discussing it now. Curious your thoughts on having a seperate table just for endpoint discovery? I'm getting a little pushback in terms of the workflow for a wallet to download all the data just to get the endpoints is a bit much. We created this file (updated every 10 minutes) to help: https://eosdac.io/topnodes.json

but I'm curious your thoughts on using multiple tables with straight data instead of just one json file

we also craated https://eosdac.io/topbps.json (also updated every 10 minutes)

on chain is a much better approach, for sure, but having everything in json may not make sense if someone just wants the nodes

Scott (anyx), [Jul 20, 2018 at 12:32:15 PM]:
Not really sure a seperate table is needed; you could parse the json from the producerjson table and grab as many endpoints as you need. 🙂 
I briefly explained in the post why I don't think mutliple tables is the best idea; the BP standard is likely to change over time (possible rapidly), and validation should be clientside.

Luke Stokes, [Jul 20, 2018 at 12:34:06 PM]:
I only see this:

> as well as allow quick changes to the BP standard format without a contract update.

But not much mention of the downsides of multiple tables (one for nodes, contact info, etc)

Maybe staying in json for now makes sense to keep a fluid, dyanmic standard as it's developed, but more and more I'm thinking we should be taking RFC approaches to do the hard work up front of defining a set standard

instead of assuming it will change later (and thus lead to breaking apps)

Scott (anyx), [Jul 20, 2018 at 12:36:20 PM]:
The big downside for multiple tables (at this current time) is the standardization efforts. Right now it just takes a json blob, and external validators can determine the convention.

In my opinion the transition to this will be much easier than conforming to a new standard, and we can change things over time if desired.

It's literally a one-liner cleos command to put your bp.json file into this table, so hopefully this gets traction.

Luke Stokes, [Jul 20, 2018 at 12:38:30 PM]:
What about the costs associated with wallets and apps having to change things, potentially multiple times? If they are pulling json files now, then they change to pull on chain then later they change to pull from individual tables once a standard is defined. In the meantime, how do we decomission old, legacy approaches? that could prove to be quite difficult. There is a cost associated with supporting approaches now which may become legacy in the future.

Scott (anyx), [Jul 20, 2018 at 12:39:08 PM]:
This is true regardless of using seperate tables while the standard is changing

Luke Stokes, [Jul 20, 2018 at 12:41:37 PM]:
I think that's kind of my point: Wouldn't it be better to do the work of figuring out a standard first? That way we have fewer changes all around and we remove one change in this cycle: pull json from web, pull json from chain, pull data you want from chain

(btw, I'm partially pushing back just based on push back I got from my own team. I think your idea is a great improvement on what we're currently doing)
👍  ,
properties (23)
post_id57,187,305
authorlukestokes
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180720t175115024z
categoryeos
json_metadata{"app":"steemit\/0.1","tags":["eos"],"links":["https:\/\/t.me\/EOSPros\/48611","https:\/\/eosdac.io\/topnodes.json","https:\/\/eosdac.io\/topbps.json"]}
created2018-07-20 17:51:15
last_update2018-07-20 17:51:15
depth1
children11
net_rshares774,593,618
last_payout2018-07-27 17:51:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length3,242
author_reputation395,063,281,398,324
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (2)
@jesta ·
I didn't see this conversations, but my opinion is that this contract isn't for node discovery. 

Node discovery itself shouldn't even be on chain - since you'd need to connect to the chain to even access that data. It's a bit redundant, and if you're already connected, why would you need to discover more nodes?

This contract itself I feel is just about publishing the bp.json data on-chain - so that way the many wallets and web apps who need this information don't have to scrape 100's of websites.
properties (22)
post_id57,188,163
authorjesta
permlinkre-lukestokes-re-greymass-an-eos-smart-contract-for-block-producer-information-20180720t180103274z
categoryeos
json_metadata{"app":"steemit\/0.1","tags":["eos"]}
created2018-07-20 18:01:03
last_update2018-07-20 18:01:03
depth2
children4
net_rshares0
last_payout2018-07-27 18:01:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length503
author_reputation140,532,825,392,812
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout0.000 SBD
percent_steem_dollars10,000
@lukestokes ·
I agree scraping 100's of websites doesn't make sense, but the pushback I'm getting from my team relates to the lack of a clear standard and the potential to have to support every backward compatible solution we introduce from here until whenever. If more people use this, will they also continue to support the website based bp.json file? If a full standard is developed in the future which puts this data directly into tables instead of as json, will that then be a third approach (with two legacy approaches to support)? That, I think, is the primary pushback I'm hearing from my team. A desire to plan out good specifications first, before introducing temporary solutions which will then need to be supported in order to not break applications which start to rely on them.

Unless we think the bp.json approach (both on the web and stored on EOS) is the solution the EOS community should be using for quite some time? I mostly agree with you that this is a good improvement on what is being done now, but I'm doing my best to relay concerns my team has to hopefully find some common ground. Maybe it's okay that app developers just have to change things as older methods go away naturally, but I think some prefer more structured, planned approaches and assurances that when we introduce a new approach, we've thought through if this is the best solution for the problem we're solving.

If this isn't for node discovery, then the current bp.json hosted on websites were were provided via listproducers still seems to be needed. If that's the case, is this data duplication?
properties (22)
post_id57,208,777
authorlukestokes
permlinkre-jesta-re-lukestokes-re-greymass-an-eos-smart-contract-for-block-producer-information-20180720t230726727z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-20 23:07:27
last_update2018-07-20 23:07:27
depth3
children3
net_rshares0
last_payout2018-07-27 23:07:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,577
author_reputation395,063,281,398,324
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@anyx · (edited)
This API gathering script you have, which requires looking through BP's websites, scraping their BP.json files (if they exist!), and collecting all that information, finding which API nodes exist... is now replaced with a single command.

I've replaced the whole gathering process with a single call to the table, like so:
```
./cleos -u https://eos.greymass.com get table producerjson producerjson producerjson | jq .rows[].json --raw-output | jq ".nodes[] | select(.ssl_endpoint != null) .ssl_endpoint"
```

Tada! Output looks like
```
"https://node0.eosblocksmith.io"
"https://eos.greymass.com"
```
As right now only 2 BPCs have plugged in their bp info's. But as BP's add their data, this call will always get the latest info.

Now anyone can validate immediately and not require any websites, just the blockchain itself.
👍  
properties (23)
post_id57,189,334
authoranyx
permlinkre-lukestokes-re-greymass-an-eos-smart-contract-for-block-producer-information-20180720t181548415z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-20 18:15:48
last_update2018-07-20 18:20:27
depth2
children5
net_rshares596,295,827
last_payout2018-07-27 18:15:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length825
author_reputation98,476,665,211,015
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@eosnation ·
+1 Thanks for sharing anyx! Very elegant way to retrieve SSL endpoints:

Notice there's 3 endpoints now *wink* (EOS Nation the 3rd producer to register)
properties (22)
post_id57,196,182
authoreosnation
permlinkre-anyx-re-lukestokes-re-greymass-an-eos-smart-contract-for-block-producer-information-20180720t194505340z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-20 19:45:06
last_update2018-07-20 19:45:06
depth3
children4
net_rshares0
last_payout2018-07-27 19:45:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length152
author_reputation528,851,004,188
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@eosnation ·
Great job Greymass! This is a great approach to store Block Producer bp.json on chain. Looking forward to see more Block Producers host their bp.json on chain!
properties (22)
post_id57,196,332
authoreosnation
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180720t194658707z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-20 19:46:57
last_update2018-07-20 19:46:57
depth1
children2
net_rshares0
last_payout2018-07-27 19:46:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length159
author_reputation528,851,004,188
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@jesta ·
Thanks for that! We thought so too, and it seemed like a low hanging fruit we could try to knock out for the entire community. Hopefully we'll start seeing some user interfaces adopt it's usage :)
properties (22)
post_id57,205,499
authorjesta
permlinkre-eosnation-re-greymass-an-eos-smart-contract-for-block-producer-information-20180720t220911915z
categoryeos
json_metadata{"app":"steemit\/0.1","tags":["eos"]}
created2018-07-20 22:09:12
last_update2018-07-20 22:09:12
depth2
children0
net_rshares0
last_payout2018-07-27 22:09:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length196
author_reputation140,532,825,392,812
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout0.000 SBD
percent_steem_dollars10,000
@eos.sweden ·
Are we just hosting bp.json on chain? Or how does it ensures the **validity** and **correctness** of data provided in bp.json?
properties (22)
post_id59,005,836
authoreos.sweden
permlinkre-eosnation-re-greymass-an-eos-smart-contract-for-block-producer-information-20180807t145712656z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-08-07 14:57:12
last_update2018-08-07 14:57:12
depth2
children0
net_rshares0
last_payout2018-08-14 14:57:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length126
author_reputation3,485,155,998,247
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@eluzgin · (edited)
I fully support this initiative. We should store BP information on Blockchain instead of relying on off chain web sites.
My only feedback is to add JSON validation to smart contract (if possible) to make sure we are storing valid data on Blockchain. 

@EOSTribe published it's bp.json on Blockchain as well!
👍  , ,
properties (23)
post_id57,207,790
authoreluzgin
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180720t224920519z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1","users":["eostribe"]}
created2018-07-20 22:49:21
last_update2018-07-21 01:41:57
depth1
children1
net_rshares1,195,640,486
last_payout2018-07-27 22:49:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length307
author_reputation48,355,340,351
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (3)
@eos.sweden ·
This is EOSTribe... What exactly is not matching? I also have similer error:

![](https://cdn.steemitimages.com/DQmcRJ7L44KfqPykj8qCzV7EsBckhMsbZXHoUu3g7JaGmty/image.png)

https://validate.eosnation.io/producers/eostribeprod.html
👍  
properties (23)
post_id59,014,856
authoreos.sweden
permlinkre-eluzgin-re-greymass-an-eos-smart-contract-for-block-producer-information-20180807t163948301z
categoryeos
json_metadata{"tags":["eos"],"image":["https:\/\/cdn.steemitimages.com\/DQmcRJ7L44KfqPykj8qCzV7EsBckhMsbZXHoUu3g7JaGmty\/image.png"],"app":"steemit\/0.1","links":["https:\/\/validate.eosnation.io\/producers\/eostribeprod.html"]}
created2018-08-07 16:39:48
last_update2018-08-07 16:39:48
depth2
children0
net_rshares0
last_payout2018-08-14 16:39:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length229
author_reputation3,485,155,998,247
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@blockgenesys ·
A really good idea and it works perfectly, good job.   I've [added](https://bloks.io/transaction/db246d289568b7e951437b60d263c4ee52337def7e7c317a379dc14211e26142) the @blockgenesys bp.json file to the table.
properties (22)
post_id57,367,970
authorblockgenesys
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180722t151943560z
categoryeos
json_metadata{"tags":["eos"],"links":["https:\/\/bloks.io\/transaction\/db246d289568b7e951437b60d263c4ee52337def7e7c317a379dc14211e26142"],"users":["blockgenesys"],"app":"steemit\/0.1"}
created2018-07-22 15:19:45
last_update2018-07-22 15:19:45
depth1
children0
net_rshares0
last_payout2018-07-29 15:19:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length207
author_reputation0
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@unus ·
sweet initiative. tip of the hat from EOS Romania.
thanks to this eosromania22 bp.json is now on chain
properties (22)
post_id57,655,548
authorunus
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180725t100703181z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-25 10:07:06
last_update2018-07-25 10:07:06
depth1
children0
net_rshares0
last_payout2018-08-01 10:07:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length102
author_reputation30,823,992,397
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@controllinghand ·
$0.19
This is huge.  The EOS community has been waiting for something like this.  Thank you for putting this together.  Greymass rocks!
👍  ,
properties (23)
post_id58,119,462
authorcontrollinghand
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180729t210246767z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-07-29 21:02:45
last_update2018-07-29 21:02:45
depth1
children2
net_rshares111,688,026,549
last_payout2018-08-05 21:02:45
cashout_time1969-12-31 23:59:59
total_payout_value0.142 SBD
curator_payout_value0.047 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length129
author_reputation4,478,278,630,502
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars0
author_curate_reward""
vote details (2)
@eos.sweden ·
$0.03
Yes, it is great work..  But **validation** has to be an independent process...
👍  
properties (23)
post_id59,004,956
authoreos.sweden
permlinkre-controllinghand-re-greymass-an-eos-smart-contract-for-block-producer-information-20180807t144802851z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-08-07 14:48:03
last_update2018-08-07 14:48:03
depth2
children0
net_rshares20,260,452,600
last_payout2018-08-14 14:48:03
cashout_time1969-12-31 23:59:59
total_payout_value0.022 SBD
curator_payout_value0.006 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length79
author_reputation3,485,155,998,247
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@eos.sweden · (edited)
$0.03
Done! Please let us know if something is wrong?

https://bloks.io/transaction/522eea0fa90bd9e9ea3f97189d32fddddd3ffb57ea9617a0e1f746021bc9b501

![](https://cdn.steemitimages.com/DQmcqLXJFpKNxX4mUUkWkCuLeepcs7dPvjcK3c2dnW1pq84/image.png)
👍  
properties (23)
post_id59,008,008
authoreos.sweden
permlinkre-controllinghand-re-greymass-an-eos-smart-contract-for-block-producer-information-20180807t152225266z
categoryeos
json_metadata{"links":["https:\/\/bloks.io\/transaction\/522eea0fa90bd9e9ea3f97189d32fddddd3ffb57ea9617a0e1f746021bc9b501"],"image":["https:\/\/cdn.steemitimages.com\/DQmcqLXJFpKNxX4mUUkWkCuLeepcs7dPvjcK3c2dnW1pq84\/image.png"],"tags":["eos"],"app":"steemit\/0.1"}
created2018-08-07 15:22:24
last_update2018-08-07 15:26:21
depth2
children0
net_rshares20,575,381,915
last_payout2018-08-14 15:22:24
cashout_time1969-12-31 23:59:59
total_payout_value0.023 SBD
curator_payout_value0.006 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length236
author_reputation3,485,155,998,247
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@corenet ·
Hello you are keep changing this with high pace... And I understand that it takes time to mature... Security is a continuous improvement process.  But are you involving all block producers or just few hands are involved in changing parameters and validation process... We are already too afraid to give lot of power to top 21 block producers ad we hope that their should be **INDEPENDENT VALIDATION** process.... and **Future Contract Changes** could be managed by **INDEPENDENT VALIDATORS**, **NOT** by top 21 BPs..
👍  
properties (23)
post_id59,004,775
authorcorenet
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20180807t144602606z
categoryeos
json_metadata{"tags":["eos"],"app":"steemit\/0.1"}
created2018-08-07 14:46:03
last_update2018-08-07 14:46:03
depth1
children0
net_rshares5,328,022,959
last_payout2018-08-14 14:46:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length516
author_reputation4,713,389,536,157
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@memtrip ·
This works especially well on mobile, one call to chain/get_producers and another call to getTableRows->producerjson and we have a filtered list of eligible block producers and their information.
properties (22)
post_id63,867,047
authormemtrip
permlinkre-greymass-an-eos-smart-contract-for-block-producer-information-20181008t105344460z
categoryeos
json_metadata{"app":"steemit\/0.1","tags":["eos"]}
created2018-10-08 10:53:45
last_update2018-10-08 10:53:45
depth1
children0
net_rshares0
last_payout2018-10-15 10:53:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length195
author_reputation0
root_title"An EOS Smart Contract for Block Producer Information"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000