Bitcoin library: C/C++
最終更新日: 2025/08/02
はじめに
いくつかツールのインストールがいるだろう。
$ sudo apt install build-essential pkg-config libtool
libsecp256k1
2025/07/22: v0.7.0
$ git clone https://github.com/bitcoin-core/secp256k1.git
$ cd secp256k1
$ git checkout -b v0.7.0 refs/tags/v0.7.0
make
makeではconfigure
でオプションを指定する。
指定できるオプションは--help
で確認できる。
$ ./configure --help
ここではrecoveryを有効にする(libwally-core で使うため)。
$ ./autogen.sh
$ ./configure --enable-module-recovery
$ make
$ time make check
...
real 0m51.198s
user 0m52.676s
sys 0m0.128s
$ sudo make install
CMake
CMakeではconfigure
の代わりに-D
フラグでオプションを指定する。
指定できるフラグは-B build -LH
で確認できる。
$ cmake -B build -LH
ここではrecoveryを有効にする。
なお、v0.7.0のREADMEでは-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON
が例になっているが、シュノア署名はデフォルトで有効になっている。
$ cmake -B build -DSECP256K1_ENABLE_MODULE_RECOVERY=ON
$ cmake --build build
$ time ctest --test-dir build
...
real 0m51.536s
user 0m52.444s
sys 0m0.261s
$ sudo cmake --install build
インストール先は/usr/local/lib/
だった。v0.7.0では共有ライブラリはlibsecp256k1.so.6.0.0
になっていた。
また/usr/local/lib/cmake/libsecp256k1/
に*.cmake
というファイルもあった。
補足
pkg-config --cflags --libs libsecp256k1
- libwally-core をビルドした場合、Blockstream の libsecp256k1-zkp がインストールされるかもしれないので注意すること(同じファイル名になる)
リンク
libwally-core
2025/08/02: v1.5.0
v1.5.0から --enable-minimal
と --with-system-secp256k1
の両方は設定できなくなったようだ。
$ git clone https://github.com/ElementsProject/libwally-core.git
$ cd libwally-core
$ git checkout -b v1.5.0 refs/tags/release_1.5.0
$ ./tools/autogen.sh
# no Elements API, use only standard secp256k1 API
$ ./configure --disable-elements --enable-standard-secp --with-system-secp256k1
$ make
$ sudo make install
備考
pkg-config --cflags --libs wallycore
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
--prefix=$HOME/.local
などとするとインストール先を変更できる。- install に
sudo
はいらないので楽だと思うが、それ以外のことが面倒になるので、ここは好みで。- include path や library の置き場所が標準ではないのでビルド時などに指定が必要になるなど
-I${HOME}/.local/include -L ${HOME}/.local/lib -lwallycore -lsecp256k1
export LD_LIBRARY_PATH=$HOME/.local/lib:/usr/local/lib
export PKG_CONFIG_PATH=$HOME/.local/lib/pkgconfig:/usr/local/lib/pkgconfig
- include path や library の置き場所が標準ではないのでビルド時などに指定が必要になるなど
- install に
--enable-standard-secp --with-system-secp256k1
として Blockstream の libsecp256k1-zkp を使わないようにしている
リンク
- 開発日記
- btc: libwally-core を使う (1) - hiro99ma blog
- btc: libwally-core を使う (2) - hiro99ma blog
- btc: libwally-core を使う (3) - hiro99ma blog
- btc: libwally-core を使う (4) - hiro99ma blog
- btc: libwally-core で script path (1) - hiro99ma blog
- btc: libwally-core で script path (2) - hiro99ma blog
- btc: libwally-core v1.4.0 - hiro99ma blog
libbitcoin(C++)
2025/07/22: v3.8.0
備考
- リリースバージョンは 2023年からv3.8.0のままだが
master
ブランチは更新されている - v3.8.0 では P2TR をサポートしていなかったのでこれ以上調べていない
writer: hiro99ma