Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions nyancat/v0.16/upgrade_result.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Parsing... DO NOT QUIT
count of hash_height_map: 44
0DE29813CBA06D2AD87B9B9B124DA4D9263025E7: 89500
E01C7393FF629995EDA5BFE3E27FC19F63D5704E: 89500
75875F70948E33D1650B9692EF1C51FF3A57DF88: 89500
236E1A81D99FFFD81E4EA876E4AD2C0D329BAFC7: 89500
F85D2B404E296373C4B89F16016B450A7178E0B5: 89500
A4F264828371D3454AD062272E9B61D6AAA3A744: 89500
13F2644AA5CD7DF42AA1B461ECA4E7F564C97C11: 89500
A06346354FBF96767FA5149FC2F715E3CD1A7270: 89500
36B0C2BC6853E51E929256FEAC9B6BEAAC7B3F83: 89500
D55C44827D2AEC15B32DC419128B771055AD3A78: 89500
AA8C02646CD999897DF507133BA03E921764EEEF: 89500
20997FBDB7CF2560C9F2D9C3E9724DB5827DDBE5: 89500
5238BE5E4451D2CFB13FE7BB6E89190F5A57EC5C: 89500
1832D22279F8369A96DC1CEB8254B60FBBB6BCB5: 89500
FD8261857253B1E7CC7907BCC9F1B72339927F29: 89500
C0CD04963F838318C954DED2F99CF4BA3386F754: 89500
9B93707175EBDB54218810EAACC0F94F1ECF85BE: 89500
0DF1CD84F0A01D43D396FA510A3975BDA4B4270E: 89500
F773B0EE4E139C6C71705C4BE29C4B5378208AF8: 89500
70D5B7007BD6BB4ADA8AE05AA66D0F75BE8A1ADF: 89500
CFB81B3886B2245B79B67F5341068A5789BCF2D5: 89500
61AC82D9E229932490EFA163B59FAC41C0284FFE: 89500
7C1D0834B14FC68C9ECDA31EEDAD536FF7F6ADC8: 89500
2DC6BFFB64B0A7F9FDAE00CFA122C3BE12AD5194: 89500
76C3D14A801DF1EA521B173DEFBE3119848A61FB: 89500
B2183BA1262F92895027A1D7B65A185AF406CDF1: 89500
6DA5F750A97DF6548A81DE1F69CAA0F5C81745F0: 89500
DC95D92E97A88FD22F046AB95EEC5063E6147308: 89500
AB998215298B2BF037BDC55184B30C415F763433: 89500
BF84BC1334E698E628B061E729B384DC0192F08E: 89500
871B774881BFEDA840B63E4B9A77EF4E925FF5C7: 89500
776BB71E517A771C20718919C47391CE42844F2B: 89500
C3A5C8764DD7ECE3802B912F679B8AD020FEA6D5: 89500
A4CC9A56A091737311635ED0C584445BCDE091E4: 89549
E3E379964AEAD656C8BC2FA24AA8F8D2934B6AD7: 89500
BCC6D088A63E4CD4BD7FE0B8F4732AA00FC2202C: 89500
4E5DF0F5F094921BA2ED3C380BCB697F7C82577D: 89500
29C213D6F7A3B7A2B7BCE98FA4C7991E5958C3EE: 89500
CAA2D43BFA31C2E9BF9D83B433E6157547A2130E: 89500
2130777DE84D2CB4915C5E4902222C85DDFFE4C8: 89500
BDD7EF0A45104720E14954C5F37769F970827F55: 89500
B27194F8EFED98BBDA74A7A4E2C62728331A3747: 89500
759FAA15A53AD2F915E5A88D6F649BF03983B34A: 89500
6739F35B94982379011BAFCD5D7445FAC75899D8: 89500
1 fva1lr24zv4qhrrzude8f4swhuvtm44ne0lffrlj82 2019-11-18T13:04:22.573Z nodeasy
2 fva19yz90xr58ppf5t6hfwwrmn937qnuh7k5y5g272 2019-11-18T13:04:27.616Z IRIS Cat - FAB46CEEAEAB9FA1
3 fva1ewdan0e0wssu0sx42vurvh770q4vxgk4vqmpye 2019-11-18T13:04:33.031Z Rich518
4 fva1fs9mdufg8cl06n5h7w95wdle89eky6ssnj4cgn 2019-11-18T13:04:38.074Z liangcheng-nyancat5-DBF3F5B2CA263BF2
5 fva16lcrv5l70ta78p3hugd3ur7uuxc864sxjqrl8k 2019-11-18T13:04:43.116Z hmm
6 fva1ckqsu3mgcnn8u5kzlafrc8tez9xzwg5wlfw7sl 2019-11-18T13:04:43.116Z xiaopeng
7 fva12zw00vvh2jfqk7mt3cfsjjpsw0z2xe5tj2t3w0 2019-11-18T13:04:43.116Z sen2
8 fva1unvyq8pzjuadt6ceghuw8sr7m8x3923ymmw72z 2019-11-18T13:04:43.116Z sheny
9 fva1z9jt836m54snxsv92gpdqugz880uuytkfl6vuv 2019-11-18T13:04:48.165Z excellent-A5A0087D80A1136E
10 fva13gxuqpcgc8sq8zhw7ga2jhretmc8zy4r0avz66 2019-11-18T13:04:53.863Z Coinstaking-65909B956DF0F488
11 fva1n2gd7lawfyydjfjt5dc223puvy63j9qrd9a8tu 2019-11-18T13:04:53.863Z CindyLi-A3D4307C0B2D4DB0
12 fva1fyxwj6pf7sygvtg7tejltwcs8vfv8mwqg0cdp0 2019-11-18T13:04:58.908Z Wetez
13 fva1krghynpm5f2wpt6zhkcvljlwrr79cjypyefcuq 2019-11-18T13:05:03.946Z Darmon-46077CBEEA4FF922
14 fva1w4n0pkkqxgy5c9gk3nqwx0jlkn05ta0nnver6k 2019-11-18T13:05:09.88Z dolphintwo-7A38C8CD6C0FA32A
15 fva1naw4f7slg2fd9dt03m03sfepkhqgrxrcg363da 2019-11-18T13:05:14.923Z stone
16 fva1eelwxfzkrmnm7a83d9fv9aqsywdm4je9kur40q 2019-11-18T13:05:19.968Z szq-1E70794B56DFB583
17 fva1ud5jlg4unw428mnswt0j2xnahs205ya9frqn2k 2019-11-18T13:05:30.489Z HLT-DE22EF4D75849301A5283B143B702801F00074AF
18 fva1vagngllj3sr2s888528uw3rqsnq308km4ylr3t 2019-11-18T13:06:01.034Z Stake5 Labs - C7595F18CC5D4FA6
19 fva1f64m50kuemuwfeztpa8mnju309n434ane4vgek 2019-11-18T13:07:13.306Z shikenian-F1F0BF192D84EAC3
20 fva1wjyj2xqqgmq9aa69577en9u6x32vclx5820g76 2019-11-18T13:09:01.706Z Hello_Rose
21 fva1vjnl5dc385ly08p3rjah3v5peaeq0fqem2whuq 2019-11-18T13:09:42.819Z matrixyz-D73D632ACC76163D
22 fva1jytwvxwywuc69jlqp6e85fne4j2d6w9hla3x08 2019-11-18T13:10:09.187Z wukong5-9A26C5A2EE8EAFD2
23 fva1qp7hdyk72a7s9xx5078wjyt8ejteme3cr9qe3l 2019-11-18T13:12:33.368Z filestealer-CF242D961E36802A
24 fva1z7jfek9vurhw2sdmlwyvu2q37wswa6kaljwstx 2019-11-18T13:12:55.68Z Allen-49D02A7526022E7C
25 fva15c7ukycq8d9f5ucmftp42ujl4jx38wtw4aa7fd 2019-11-18T13:24:04.938Z Irivin_AC1B8777C654F6ADAC9BC53FFCEE899E205B8C35
26 fva1n5tqycmf8kyagatk9yyadd79e0cw4mldd2spck 2019-11-18T13:51:06.155Z abouzidi-BE448F9ECAB40ABE
27 fva1cc6n98a6nqhja23fzv6nhvd6rsdnsgfzvun80v 2019-11-18T13:54:58.043Z irisnyan5-D378BD6DB583FDF9
28 fva1est0jnntmeu8g6yv99vaa0khlmm478ajwxuewj 2019-11-18T14:06:41.497Z NewRoad.Capital-F898ACE263EC1C4E
29 fva1hma5k4xz2rjsy8sg2zfa6e97cqyptzyw4ddcmr 2019-11-18T14:34:35.879Z kai-DA4CF56ADE526129
30 fva1zmrnj3pkms3e86h5u35wyzkz42eptxq5ghgzrz 2019-11-18T14:35:11.703Z sam-70FA19B71FE14D20
31 fva1ud47gxvlc3cc9efpga4hvlm44q9970kah4a6ms 2019-11-18T14:35:37.474Z xiaokai-58B908123A30A660
32 fva1qkfu7e58pqm30d4ak0gguhnqnx00r6t5e97uug 2019-11-18T14:37:57.481Z steep-F09FF586F5000416
33 fva1ygq0eqeaxmgmrqvxm7cvthpgsj7punakv5rnwf 2019-11-18T15:13:56.257Z yn-alex-FAA52713CBDB55F7
34 fva1vn8xlcrpzgrhxwnvhed8xlpkvrrmnh4pygu85e 2019-11-18T15:14:47.493Z BC7FB7F830FD2C32
35 fva1cn2q6840090kgkpdyl330x5css5kp7m4npyq9j 2019-11-18T15:16:26.945Z liviu-2C877AC873132C91
36 fva1lyzpnl2k05wm2l5n7wc09ed7y3e9hfycy0x3kl 2019-11-18T15:41:16.888Z bharvest-n6
37 fva18wvfx7j783wq7v6dkr3mjfna2s2ul3d5ktg7u9 2019-11-18T17:25:20.997Z ilya-genesislab-CE335B8803B8898E
38 fva1gyhapedd7l0jaxe35hnwxc2tmjcdrvzxv9k50p 2019-11-18T17:42:27.172Z syncnode-F422F328C14AFBFA
39 fva10mljgcjf9h2dq6fnms7pxfx8288mtw04g77pd6 2019-11-19T00:34:16.961Z ATEAM-B700C93D9E4578F666108BE80CB9A4E7643FF992
40 fva1k4kxxfkhhwvyzxxxgksefkzpxahp9wfcapg2py 2019-11-19T02:22:32.772Z Mr.K-74D3AF53635231D9
41 fva19f2vm6gvepakeazkuxsrylgazvq5axpx5x6kn0 2019-11-19T13:17:24.341Z valiris-5281C9C7BE5C2646 ok
77 changes: 77 additions & 0 deletions nyancat/v0.16/upgrade_verify.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/bin/bash

echo "Parsing... DO NOT QUIT"

declare -A hash_height_map
declare -A fva_hash_map
declare -A fva_vote_map
declare -A fva_moniker_map
declare -A testnet_identity_map
declare -A mainnet_identity_map

### acquire validator_address of validators who has signed one of blocks between 89500 and 89800 from lcd and save it to hash_height_map,
### the height of software upgrade switched to version v0.16.0-rc1 is 89500.
for i in {89501..89801}
do
# echo $i;
PreCommits=$(curl -s 'https://lcd.nyancat.irisnet.org/blocks/'$i | jq '.block.last_commit.precommits')
for row in $(echo "${PreCommits}" | jq -r '.[] | @base64'); do
_jq() {
echo ${row} | base64 --decode | jq -r ${1}
}
validator_address=$(_jq '.validator_address')
height=$(_jq '.height')
### filter validator_address of validator who already has signed last block.
if [ "$validator_address" != "null" -a -z "${hash_height_map[$validator_address]}" ]
then
hash_height_map["$validator_address"]=$height
fi
done
done
echo "count of hash_height_map: " ${#hash_height_map[@]}

### acquire info of validators from api of nyancat explorer and save it to fva_hash_map and testnet_identity_map.
curl -s 'https://nyancat.irisplorer.io/api/stake/validators?page=1&size=100&type=""&origin=browser' | jq '.Data[] | .proposer_addr+":"+.operator_address+":"+.description.identity' | sed 's/"//g' > nyancat-task-temp
while read row; do
# echo $row
hash=$(echo $row | cut -d':' -f1)
fva=$(echo $row | cut -d':' -f2)
identity=$(echo $row | cut -d':' -f3)
fva_hash_map[$fva]=$hash
testnet_identity_map[$fva]=$identity
done < nyancat-task-temp

### acquire info of validators from api of explorer of mainnet and save it to mainnet_identity_map.
curl -s 'https://www.irisplorer.io/api/stake/validators?page=1&size=100&type=""&origin=browser' | jq '.Data[] | .proposer_addr+":"+.operator_address+":"+.description.identity' | sed 's/"//g' > nyancat-task-temp
while read row; do
identity=$(echo $row | cut -d':' -f3)
# echo $identity
[ -n "$identity" ] && mainnet_identity_map[$identity]="ok"
done < nyancat-task-temp

### acquire voted info in proposal #1 & #3 from api of nyancat explorer ordered by time.
curl -s 'https://nyancat.irisplorer.io/api/gov/proposals/1/voter_txs?page=1&size=100' | jq '.items | reverse | .[] | .voter+":"+.moniker+":"+.option+"::"+.timestamp' | sed 's/"//g' > nyancat-task-temp
curl -s 'https://nyancat.irisplorer.io/api/gov/proposals/3/voter_txs?page=1&size=100' | jq '.items | reverse | .[] | .voter+":"+.moniker+":"+.option+"::"+.timestamp' | sed 's/"//g' >> nyancat-task-temp
index=0
while read row; do
# echo $row
fva=$(echo $row | cut -d':' -f1)
moniker=$(echo $row | cut -d':' -f2)
vote=$(echo $row | cut -d':' -f3)
timestamp=$(echo $row | awk -F:: '{print $2}')
### filter validators of duplicate vote and unsigned one of 300 blocks after software upgrade.
if [ -z "${fva_vote_map[$fva]}" -a -n "${fva_hash_map[$fva]}" ] && [ -n "${hash_height_map[${fva_hash_map[$fva]}]}" ]; then
if [ $index -lt 40 ]; then
index=$[$index + 1]
fva_vote_map[$fva]=$vote
echo -e $index"\t"$fva"\t"$timestamp"\t"${testnet_identity_map[$fva]}"\t"$moniker
### validators of mainnet beyond top 40 is passed by verifying their identity.
elif [ -n "${testnet_identity_map[$fva]}" ] && [ "${mainnet_identity_map[${testnet_identity_map[$fva]}]}" == "ok" ]; then
index=$[$index + 1]
fva_vote_map[$fva]=$vote
echo -e $index"\t"$fva"\t"$timestamp"\t"${testnet_identity_map[$fva]}"\t"$moniker"\t"ok
fi
fi
# echo $fva,$moniker,$vote
done < nyancat-task-temp
rm -f nyancat-task-temp