SteemJs: How Many Witnesses are Running on 23.1?
- 时间:2020-09-09 13:08:38
- 分类:网络文摘
- 阅读:167 次
How many witnesses are running on 23.1 and how many of them are active? It turns out answering this question does not require preprocess blocks on steem blockchain e.g. SteemSQL. Rather, we can get the answer by pure SteemJS.
Get All Witnesses
First, we can use the steemp.api.getWitnessCount to return the list of all registered witnesses – which is a lot more than we thought, currently more than 1400 witnesses but of course many of them have been disabled or never produced a block.
1 2 3 4 5 6 7 8 9 10 11 | function getTotalWitnesses() { return new Promise((resolve, reject) => { steem.api.getWitnessCount(function(err, result) { if (!err) { resolve(result); } else { reject(err); } }); }); } |
function getTotalWitnesses() {
return new Promise((resolve, reject) => {
steem.api.getWitnessCount(function(err, result) {
if (!err) {
resolve(result);
} else {
reject(err);
}
});
});
}Get All Witnesses Accounts
Then, we can use steem.api.getWitnesses to retreive the witnesses information for multiple accounts at the same time.
1 2 3 4 5 6 7 8 9 10 11 | function getAllWitnessAccounts(total) { return new Promise((resolve, reject) => { steem.api.getWitnesses([...Array(total).keys()], function(err, result) { if (!err) { resolve(result); } else { reject(err); } }); }); } |
function getAllWitnessAccounts(total) {
return new Promise((resolve, reject) => {
steem.api.getWitnesses([...Array(total).keys()], function(err, result) {
if (!err) {
resolve(result);
} else {
reject(err);
}
});
});
} Filtering and Count the Results
Then, we can chain those two functions to filter out those witnesses that are running 23.1 and are active.
1 2 3 4 5 6 7 | (async function () { const totalWitnesses = await getTotalWitnesses(); let data = await getAllWitnessAccounts(totalWitnesses); log(data.filter(x => { return x.running_version === "0.23.1" && (x.signing_key !== "STM1111111111111111111111111111111114T1Anm"); }).length); })(); |
(async function () {
const totalWitnesses = await getTotalWitnesses();
let data = await getAllWitnessAccounts(totalWitnesses);
log(data.filter(x => {
return x.running_version === "0.23.1" && (x.signing_key !== "STM1111111111111111111111111111111114T1Anm");
}).length);
})();The answer is 46 witnesses are running on 23.1 and all of them are active. If we point the RPC node to HIVE chain, we get 107 active HIVE witnesses running on 23.0.
Run the code using SteemJs.
Slightly changing the query, we know:
There are 24 Witnesses running at 0.23.0 but they are disabled.
And there are 9 witnesses running at 0.23.0 and they are ‘active’ which may be those HIVE witnesses who didn’t take offline they witnesses.
BTW, i have added the dSteem into the SteemJs tool

SteemJs Editor
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:地图管理条例(国务院令第664号) 中华人民共和国宪法 全国社会保障基金条例(国务院令第667号) 2016年国务院关于修改部分行政法规的决定 居住证暂行条例(国务院令第663号) 国务院关于修改《建设工程勘察设计管理条例》的决定(国务院令第662号) 国务院关于修改《中国公民往来台湾地区管理办法》的决定(国务院令第661号) 存款保险条例(国务院令第660号) 博物馆条例(国务院令第659号) 侵害消费者权益行为处罚办法(工商总局令第73号)
- 评论列表
-
- 添加评论