如何在 Fedora 20 上使用 Vanitygen?(openssl 限制)
我在 Fedora 上看到過幾種從原始碼建構比特幣的方法,但我沒有看到 vanitygen 的相應資訊。它建構並啟動,但隨後出現錯誤:“pattern.c:164: vg_exec_context_init: Assertion `vxcp->vxc_key’ failed。” 當然,原因很容易找到:OpenSSL 的 Fedora 實現不包括比特幣所依賴的算法。Bicoin 解決了這個問題,但 vanitygen 似乎無法解決。我從他們的網站下載並建構了最新版本的 OpenSSL。但是,使用“make -rpath [我建構的 openssl 的路徑]”並沒有改變任何東西。
所以我的問題是:如何讓 vanitygen 指向我的 OpenSSL 而不是預設的 OpenSSL?我不希望我的整個系統都使用自定義的 OpenSSL,因為我比我下載的更信任 Fedora 實現;但是,我不打算將生成的地址用於少量比特幣,因此它們不必那麼安全。
編輯:作為參考,下面接受的答案中引用的程序是:
注意:在這個和下面接受的答案中,**用最新版本的 OPENSSL 替換 openssl-1.0.1g。**1.0.1g 可能存在在未來版本中修補的安全漏洞——在撰寫本文時它是最新的,但可能不會在六個月內出現。
mkdir ~/devel cd ~/devel wget http://openssl.org/source/openssl-1.0.1g.tar.gz tar xfz openssl-1.0.1g.tar.gz cd openssl-1.0.1g ./config --prefix=/opt/openssl-1.0.1g zlib-dynamic shared make sudo make install_sw
首先,您需要從原始碼編譯 OpenSSL。我假設您已經按照Bitmessage 論壇中的描述編譯了它。這樣,包括橢圓曲線支持的 OpenSSL 安裝在 /opt/openssl-version 中。至於最近發布的 Heartbleed 漏洞,請使用 OpenSSL 最新的穩定版本。
按照這個描述,我現在假設已經在 /opt/openssl-1.0.1g 下安裝了包括橢圓曲線支持的OpenSSL
現在來到vanitygen:下載 zip 文件並將其解壓縮到您的硬碟驅動器。然後修改Makefile:在該文件的最頂部添加以下行:
export LD_RUN_PATH=/opt/openssl-1.0.1g/lib
之後,轉到設置CPFLAGS的行。修改它,使其如下所示:
CFLAGS=-ggdb -O3 -Wall -L/opt/openssl-1.0.1g/lib
基本上,該行未修改,除了已附加的自定義 OpenSSL 庫的庫路徑。
**而已!**現在你也可以在 Fedora 中編譯 vanitygen:
make ./vanitygen 1TEST