一、黑名单账户列表
actor-blacklist = blacklistmee
actor-blacklist = ge2dmmrqgene
actor-blacklist = gu2timbsguge
actor-blacklist = ge4tsmzvgege
actor-blacklist = gezdonzygage
actor-blacklist = ha4tkobrgqge
actor-blacklist = gq4dkmzzhege
actor-blacklist = gu2teobyg4ge
actor-blacklist = gq4demryhage
actor-blacklist = q4dfv32fxfkx
actor-blacklist = ktl2qk5h4bor
actor-blacklist = haydqnbtgene
actor-blacklist = g44dsojygyge
actor-blacklist = guzdonzugmge
actor-blacklist = ha4doojzgyge
actor-blacklist = gu4damztgyge
actor-blacklist = haytanjtgige
actor-blacklist = exchangegdax
actor-blacklist = cmod44jlp14k
actor-blacklist = 2fxfvlvkil4e
actor-blacklist = yxbdknr3hcxt
actor-blacklist = yqjltendhyjp
actor-blacklist = pm241porzybu
actor-blacklist = xkc2gnxfiswe
actor-blacklist = ic433gs42nky
actor-blacklist = fueaji11lhzg
actor-blacklist = w1ewnn4xufob
actor-blacklist = ugunxsrux2a3
actor-blacklist = gz3q24tq3r21
actor-blacklist = u5rlltjtjoeo
actor-blacklist = k5thoceysinj
actor-blacklist = ebhck31fnxbi
actor-blacklist = pvxbvdkces1x
actor-blacklist = oucjrjjvkrom
actor-blacklist = neverlandwal
actor-blacklist = tseol5n52kmo
actor-blacklist = potus1111111
actor-blacklist = craigspys211
actor-blacklist = eosfomoplay1
actor-blacklist = wangfuhuahua
actor-blacklist = guytqmbuhege
actor-blacklist = huobldeposit
actor-blacklist = gm3dcnqgenes
actor-blacklist = gm34qnqrepqt
actor-blacklist = gt3ftnqrrpqp
actor-blacklist = gtwvtqptrpqp
actor-blacklist = gm31qndrspqr
actor-blacklist = lxl2atucpyos
actor-blacklist = g4ytenbxgqge
actor-blacklist = jinwen121212
actor-blacklist = ha4tomztgage
actor-blacklist = my1steosobag
actor-blacklist = iloveyouplay
actor-blacklist = eoschinaeos2
actor-blacklist = eosholderkev
actor-blacklist = dreams12true
actor-blacklist = imarichman55
actor-blacklist = gizdcnjyg4ge
actor-blacklist = gyzdmmjsgige
actor-blacklist = guzdanrugene
actor-blacklist = earthsop1sys
actor-blacklist = refundwallet
actor-blacklist = jhonnywalker
actor-blacklist = alibabaioeos
actor-blacklist = whitegroupes
actor-blacklist = 24cryptoshop
actor-blacklist = minedtradeos
actor-blacklist = gizdkmjvhege
actor-blacklist = newdexmobapp
actor-blacklist = ftsqfgjoscma
actor-blacklist = hpbcc4k42nxy
actor-blacklist = 3qyty1khhkhv
actor-blacklist = xzr2fbvxwtgt
actor-blacklist = myqdqdj4qbge
actor-blacklist = shprzailrazt
actor-blacklist = qkwrmqowelyu
actor-blacklist = lmfsopxpr324
actor-blacklist = lhjuy3gdkpq4
actor-blacklist = lcxunh51a1gt
actor-blacklist = geydddsfkk5e
actor-blacklist = pnsdiia1pcuy
actor-blacklist = kwmvzswquqpb
actor-blacklist = guagddoefdqu
actor-blacklist = eosusswallet
actor-blacklist = hazdkmjzgage
actor-blacklist = kh4azehosmop
actor-blacklist = 5pol2thb2ria
actor-blacklist = mq3glv2stv4e
actor-blacklist = i3fzzfgrjbjc
actor-blacklist = 4mtfxsewttaf
actor-blacklist = rcwrod3lhuhq
actor-blacklist = jgj1mnxfhff5
actor-blacklist = qlbbgfli1nuj
actor-blacklist = gwapdrd2p4ko
actor-blacklist = tvtumtera3he
actor-blacklist = gjtii2d4tj14
actor-blacklist = b2c1ywwknop5
actor-blacklist = ut2ggwbjdknq
actor-blacklist = jmp12mlstdob
actor-blacklist = tmnazyf5ftqi
actor-blacklist = pab5kap44ivb
actor-blacklist = cds4gvmxhg3m
actor-blacklist = wsrapxubkl55
actor-blacklist = mhlxqjez3lqs
actor-blacklist = i2aubmanszsk
actor-blacklist = onzcps2arolt
actor-blacklist = rit5yr25a1lk
actor-blacklist = wqyj3xlmp13b
actor-blacklist = tmnjd3r2gt5q
actor-blacklist = dobyhfj31fmo
actor-blacklist = lzvysxbjeypf
actor-blacklist = y2x1kenbtyia
actor-blacklist = dxt14xuvycko
actor-blacklist = rok1uwevzqts
actor-blacklist = giisxooweeew
actor-blacklist = amzow3p4zi43
actor-blacklist = fbycrvvd5qmb
actor-blacklist = ii4muo2ipf3x
actor-blacklist = b52fsjjqdzaa
actor-blacklist = fjupnherro2j
actor-blacklist = sluy5gcfzove
actor-blacklist = sadomqwm3k1f
actor-blacklist = bgvoe4jt3eui
actor-blacklist = dweoouwbxfgc
actor-blacklist = hoveuorxadro
actor-blacklist = hiporche1111
二、需要一个一个处理黑名单账户,生成一个综合的json文件,过程如下
1、生成第一个黑名单账户的 updateauth 数据文件updateblacklistaccauth.json
1 | cleos set account permission -s -j -d blacklistmee active '{"threshold":1,"keys":[], "accounts":[{"permission": {"actor": "eosio.prods", "permission": "active"},"weight":1}]}' owner > updateblacklistaccauth.json |
2、vim修改updateblacklistaccauth.json文件,将文件中的 ref_block_num 和 ref_block_prefix 改为 0,将 expiration 改为 1970-01-01T00:00:00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "expiration" : "1970-01-01T00:00:00" , "ref_block_num" : 0, "ref_block_prefix" : 0, "max_net_usage_words" : 0, "max_cpu_usage_ms" : 0, "delay_sec" : 0, "context_free_actions" : [], "actions" : [{ "account" : "eosio" , "name" : "updateauth" , "authorization" : [{ "actor" : "blacklistmee" , "permission" : "active" } ], "data" : "a094ccd845884c3c00000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed3232010000" } ], "transaction_extensions" : [], "signatures" : [], "context_free_data" : [] } |
3、调用 wrap 合约执行下面命令,生成最终的 transaction data 文件名sudo_update_all_blacklistacc_active_trx.json
1 | cleos wrap exec -s -j -d hashfineosio updateblacklistaccauth.json > sudo_update_all_blacklistacc_active_trx.json |
4、vim修改sudo_update_all_blacklistacc_active_trx.json文件内容,将文件中的 ref_block_num 和 ref_block_prefix 设置为 0,将 expiration 的日期向后推迟一定的时间(比如 1 天后),这个时间表示 transaction 的过期时间。由于这个 transaction 最终需要等待 BP 多签生效,因此过期时间不能太短。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #修改前 cat sudo_update_all_blacklistacc_active_trx.json { "expiration" : "2019-10-14T09:26:17" , "ref_block_num" : 13003, "ref_block_prefix" : 1773687655, "max_net_usage_words" : 0, "max_cpu_usage_ms" : 0, "delay_sec" : 0, "context_free_actions" : [], "actions" : [{ "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a094ccd845884c3c00000000a8ed323231a094ccd845884c3c00000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" } ], "transaction_extensions" : [], "signatures" : [], "context_free_data" : [] } #修改后 { "expiration" : "2019-10-15T09:26:17" , "ref_block_num" : 0, "ref_block_prefix" : 0, "max_net_usage_words" : 0, "max_cpu_usage_ms" : 0, "delay_sec" : 0, "context_free_actions" : [], "actions" : [{ "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a094ccd845884c3c00000000a8ed323231a094ccd845884c3c00000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" } ], "transaction_extensions" : [], "signatures" : [], "context_free_data" : [] } |
5、生成第二个黑名单账户的 updateauth 数据,可以覆盖上一个文件updateblacklistaccauth.json
1 | cleos set account permission -s -j -d ge2dmmrqgene active '{"threshold":1,"keys":[], "accounts":[{"permission": {"actor": "eosio.prods", "permission": "active"},"weight":1}]}' owner > updateblacklistaccauth.json |
6、参考第2步修改,将文件中的 ref_block_num 和 ref_block_prefix 改为 0,将 expiration 改为 1970-01-01T00:00:00
7、参考第3步,调用 wrap 合约执行上述命令,生成第二个黑名单账户ge2dmmrqgene的 transaction data,注意,命令中生成文件名要改一下,不要覆盖文件名sudo_update_all_blacklistacc_active_trx.json
1 | cleos wrap exec -s -j -d hashfineosio updateblacklistaccauth.json > sudo_update_2_blacklistacc_active_trx.json |
8、打开文件sudo_update_2_blacklistacc_active_trx.json,复制actions部分,添加到文件中sudo_update_all_blacklistacc_active_trx.json,如下所示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | cat sudo_update_2_blacklistacc_active_trx.json { "expiration" : "2019-10-14T09:40:58" , "ref_block_num" : 14767, "ref_block_prefix" : 678488647, "max_net_usage_words" : 0, "max_cpu_usage_ms" : 0, "delay_sec" : 0, "context_free_actions" : [], "actions" : [{ "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a0a662f64a99846200000000a8ed323231a0a662f64a99846200000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" } ], "transaction_extensions" : [], "signatures" : [], "context_free_data" : [] } #复制下面一部分到文件sudo_update_all_blacklistacc_active_trx.json中的actions数组,追加到后面 { "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a0a662f64a99846200000000a8ed323231a0a662f64a99846200000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" } #修改后到sudo_update_all_blacklistacc_active_trx.json文件如下 cat sudo_update_all_blacklistacc_active_trx.json { "expiration" : "2019-10-15T09:26:17" , "ref_block_num" : 0, "ref_block_prefix" : 0, "max_net_usage_words" : 0, "max_cpu_usage_ms" : 0, "delay_sec" : 0, "context_free_actions" : [], "actions" : [{ "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a094ccd845884c3c00000000a8ed323231a094ccd845884c3c00000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" }, { "account" : "eosio.wrap" , "name" : "exec" , "authorization" : [{ "actor" : "hashfineosio" , "permission" : "active" },{ "actor" : "eosio.wrap" , "permission" : "active" } ], "data" : "00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d501a0a662f64a99846200000000a8ed323231a0a662f64a99846200000000a8ed32320000000080ab26a70100000000010070a2b702ea305500000000a8ed323201000000" } ], "transaction_extensions" : [], "signatures" : [], "context_free_data" : [] } |
9、用上面的方式从第5步开始到第8步,继续追加第3个,第4个......黑名单账户第action信息到文件sudo_update_all_blacklistacc_active_trx.json中,直到把所有到黑名单全部加进去
三、生成 producer_permissions.json 文件,假设网络中有 21 个 BP, producer_permissions.json 的文件内容如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [ { "actor" : "okcapitalbp1" , "permission" : "active" }, { "actor" : "eoshuobipool" , "permission" : "active" }, { "actor" : "eoseouldotio" , "permission" : "active" }, { "actor" : "eoslaomaocom" , "permission" : "active" }, { "actor" : "big.one" , "permission" : "active" }, { "actor" : "helloeoscnbp" , "permission" : "active" }, { "actor" : "eosiomeetone" , "permission" : "active" }, { "actor" : "eoscannonchn" , "permission" : "active" }, { "actor" : "blockpooleos" , "permission" : "active" }, { "actor" : "eosdotwikibp" , "permission" : "active" }, { "actor" : "eosiosg11111" , "permission" : "active" }, { "actor" : "bitfinexeos1" , "permission" : "active" }, { "actor" : "newdex.bp" , "permission" : "active" }, { "actor" : "eosflytomars" , "permission" : "active" }, { "actor" : "starteosiobp" , "permission" : "active" }, { "actor" : "zbeosbp11111" , "permission" : "active" }, { "actor" : "eosasia11111" , "permission" : "active" }, { "actor" : "eosinfstones" , "permission" : "active" }, { "actor" : "whaleex.com" , "permission" : "active" }, { "actor" : "eosrapidprod" , "permission" : "active" }, { "actor" : "cochainworld" , "permission" : "active" } ] |
四、发起多签 proposal
1 | cleos multisig propose_trx updateactive producer_permissions.json sudo_update_all_blacklistacc_active_trx.json hashfineosio |
五、查看提案:
1 2 | cleos get table eosio.msig hashfineosio proposal { "rows" : [{ "proposal_name" : "updateactive" , "packed_transaction" : "be13a05d00000000000000000000010040359703ea305500000000008054570200000026dd0a305500000000a8ed32320040359703ea305500000000a8ed32327d00000026dd0a30550000000000000000000000000000010000000000ea30550040cbdaa86c52d50190b1ca5ec16c52d500000000a8ed32324390b1ca5ec16c52d500000000a8ed32320000000080ab26a7010000000100039db69730252dc7af792688068959c71aaa8641c92b3e31a2c0950e6b39a0a3af010000000000" } ], "more" : false } |
六、在群里或社区提醒其他节点approve该提案
1 | cleos multisig approve BP_ACCOUNT updateactive '{"actor": "hashfineosio", "permission": "active"}' -p BP_ACCOUNT |