亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

加速 Python 腳本或尋找替代方案?

加速 Python 腳本或尋找替代方案?

收到一只叮咚 2021-09-24 16:07:52
這是我當前的腳本:import argparsefrom pybitcointools import *parser = argparse.ArgumentParser()parser.add_argument('filename')args = parser.parse_args()with open(args.filename) as textfile:    for line in textfile:       priv = sha256(line.rstrip())       wif_u = encode_privkey(priv, 'wif')       wif_c = encode_privkey(priv, 'wif_compressed')       addr_u = pubtoaddr(privtopub(priv))       addr_c = pubtoaddr(compress(privtopub(priv)))       print("%s,%s" % (addr_u, wif_u))       print("%s,%s" % (addr_c, wif_c))我運行此腳本將 1000 行轉換為 2000 個比特幣腦錢包(1000 x 2 包括壓縮和未壓縮)。運行需要 12.5 秒。如果我刪除這些行,它會從 12.5 秒下降到 0.2 秒:addr_u = pubtoaddr(privtopub(priv))addr_c = pubtoaddr(compress(privtopub(priv)))但當然,我需要地址,而不僅僅是 WIF 格式的私鑰。所以這是我想弄清楚的三件事:為什么地址生成時間比私鑰生成時間長?有沒有辦法加快現有 Python 腳本的運行速度,使其在不到一秒的時間內運行?如果沒有,有沒有人知道可以更快地完成此操作的簡單替代方法?我不介意使用 Python、Perl、C,無論做什么,都是最快的。
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

你打了privtopub(priv)兩次電話。這將節省一個fast_multiply可能是整個程序中最慢的函數的調用。


我建議先做:


pub = privtopub(priv)

addr_u = pubtoaddr(pub)

addr_c = pubtoaddr(compress(pub))

然后我建議使用multiprocessing.Pool:


import argparse

from pybitcointools import *


def convert(line):

    priv = sha256(line.rstrip())

    wif_u = encode_privkey(priv, 'wif')

    wif_c = encode_privkey(priv, 'wif_compressed')

    pub = privtopub(priv)

    addr_u = pubtoaddr(pub)

    addr_c = pubtoaddr(compress(pub))

    return (addr_u, wif_u, addr_c, addr_u)


if __name__=="__main__":


    parser = argparse.ArgumentParser()

    parser.add_argument('filename')

    args = parser.parse_args()


    pool = multiprocessing.Pool()


    with open(args.filename) as textfile:

        for addr_u, wif_u, addr_c, addr_u in pool.imap(convert, textfile):

            print("%s,%s" % (addr_u, wif_u))

            print("%s,%s" % (addr_c, wif_c))


查看完整回答
反對 回復 2021-09-24
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號