sudo apt-get update
sudo apt-get install librocksdb-dev wget
sudo apt-get install -qqy cargo clang cmake build-essential
From electrs git repo being tested:
ROCKSDB_INCLUDE_DIR=/usr/include
ROCKSDB_LIB_DIR=/usr/lib
cargo install --locked --path .
electrs --version
BITCOIND_VERSION=22.0
wget -q https://bitcoincore.org/bin/bitcoin-core-$BITCOIND_VERSION/bitcoin-$BITCOIND_VERSION-x86_64-linux-gnu.tar.gz
tar xvf bitcoin-$BITCOIND_VERSION-x86_64-linux-gnu.tar.gz
mv -v bitcoin-$BITCOIND_VERSION/bin/bitcoind .
mv -v bitcoin-$BITCOIND_VERSION/bin/bitcoin-cli .
sudo apt-get install -qqy git libsecp256k1-0 python3-cryptography python3-setuptools python3-pip jq curl
git clone --recurse-submodules https://github.com/spesmilo/electrum/
python3 -m pip install -e electrum/
electrum version --offline
git clone https://github.com/spesmilo/electrumx.git
cd electrumx
pip3 install .
rm -rf data/
mkdir -p data/{bitcoin1,bitcoin2,electrum,electrs,electrumx}
./bitcoind -version
./bitcoind -regtest -regtest -txindex=1 -datadir=data/bitcoin1 -printtoconsole=0 -fallbackfee=0.0001 &
BITCOIND1_PID=$!
./bitcoind -regtest -txindex=1 -datadir=data/bitcoin2 -port=28444 -rpcport=28443 -printtoconsole=0 -fallbackfee=0.0001 &
BITCOIND2_PID=$!
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 createwallet "test"
NODE_ADDR=`./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getnewaddress`
echo $NODE_ADDR
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 generatetoaddress 101 $NODE_ADDR
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getwalletinfo
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 addnode "127.0.0.1:18444" "add"
./bitcoin-cli -regtest -datadir=data/bitcoin1 getpeerinfo
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getpeerinfo
node # | tip height | confirmed | mempool |
---|---|---|---|
1 | 101 | none | none |
2 | 101 | none | none |
export RUST_LOG=electrs=debug
electrs \
--db-dir=data/electrs \
--daemon-dir=data/bitcoin1 \
--network=regtest \
2> data/electrs/regtest-debug.log &
ELECTRS_PID=$!
electrum --regtest daemon --server localhost:60401:t -1 -vDEBUG 2> data/electrum/regtest-debug.log &
ELECTRUM_PID=$!
electrum -> electrs -> bitcoind 1 <- bitcoind2 (block creator/invalidator)
export COIN=Bitcoin
export DB_DIRECTORY=data/electrumx
export NET=Regtest
export SERVICES=tcp://:60401
export DAEMON_URL=`cat data/bitcoin/regtest/.cookie`@localhost:18443
export PEER_DISCOVERY=off
electrumx/electrumx_server 2>> data/electrumx/electrumx.log >> data/electrumx/electrumx.log &
ELECTRUMX_PID=$!
electrum --regtest daemon --server localhost:60401:t -1 -vDEBUG 2> data/electrum/regtest-debug.log &
ELECTRUM_PID=$!
electrum --regtest --wallet=data/electrum/wallet getinfo
electrum --regtest --wallet=data/electrum/wallet create --seed_type=segwit
electrum --regtest --wallet=data/electrum/wallet load_wallet
electrum --regtest --wallet=data/electrum/wallet getbalance
WALLET_ADDR1=`electrum --regtest --wallet=data/electrum/wallet getunusedaddress`
echo $WALLET_ADDR1
TX1=`./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 sendtoaddress $WALLET_ADDR1 1.11 "test1"`
./bitcoin-cli -regtest -datadir=data/bitcoin1 getrawtransaction $TX1 true
electrum --regtest --wallet=data/electrum/wallet getaddresshistory $WALLET_ADDR1
electrum --regtest --wallet=data/electrum/wallet getbalance
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 generatetoaddress 1 $NODE_ADDR
./bitcoin-cli -regtest -datadir=data/bitcoin1 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getrawtransaction $TX1 true
electrum --regtest --wallet=data/electrum/wallet getaddresshistory $WALLET_ADDR1
electrum --regtest --wallet=data/electrum/wallet getbalance
node # | tip height | confirmed | mempool |
---|---|---|---|
1 | 102 | TX1 | none |
2 | 102 | TX1 | none |
confirmed: 1.11
TIP=`./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getbestblockhash`
echo $TIP
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 invalidateblock $TIP
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getmempoolinfo
./bitcoin-cli -regtest -datadir=data/bitcoin1 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin1 getmempoolinfo
electrum --regtest --wallet=data/electrum/wallet getbalance
node # | tip height | confirmed | mempool |
---|---|---|---|
1 | 102 | TX1 | none |
2 | 101 | none | TX1 |
confirmed: 1.11
TIP=`./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getbestblockhash`
echo $TIP
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 invalidateblock $TIP
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getblockchaininfo
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getmempoolinfo
./bitcoin-cli -regtest -datadir=data/bitcoin1 getblockchaininfo
./bitcoin-cli -regtest -datadir=data/bitcoin1 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin1 getmempoolinfo
electrum --regtest --wallet=data/electrum/wallet getbalance
electrum --regtest --wallet=data/electrum/wallet listunspent
node # | tip height | confirmed | mempool |
---|---|---|---|
1 | 102 | TX1 | none |
2 | 100 | none | none |
confirmed: 1.11
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 generatetoaddress 3 $NODE_ADDR
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getblockchaininfo
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin2 -rpcport=28443 getmempoolinfo
./bitcoin-cli -regtest -datadir=data/bitcoin1 getblockchaininfo
./bitcoin-cli -regtest -datadir=data/bitcoin1 getrawtransaction $TX1 true
./bitcoin-cli -regtest -datadir=data/bitcoin1 getmempoolinfo
electrum --regtest --wallet=data/electrum/wallet getbalance
node # | tip height | confirmed | mempool |
---|---|---|---|
1 | 103 | none | TX1 |
2 | 103 | none | none |
confirmed: 0
unconfirmed: 1.11
electrum --regtest --wallet=data/electrum/wallet stop
wait $ELECTRUM_PID
kill -INT $ELECTRS_PID
wait $ELECTRS_PID
./bitcoin-cli -regtest -datadir=data/bitcoin1 stop
wait $BITCOIND1_PID
./bitcoin-cli -regtest -datadir=data/bitcoin2 --rpcport=28443 stop
wait $BITCOIND2_PID
# IF using electrumx instead of electrs
kill $ELECTRUMX_PID
wait $ELECTRUMX_PID
For BDK 1.0 alpha releases the latest 1.0.0-alpha.1 is set to release any day now. The marquee change for this milestone is the introduction of the ChainOracle type and related refactoring. The new ChainOracle makes it possible for BDK based wallets to directly access key blockchain data directly from sources such as Compact Block Filter clients or via the Bitcoin Core RPC interface (TBD in future releases). Other notable 1.0 alpha changes are improved no_std support for our WASM using friends, and fixing 1.48 Rust version support to keep our corporate hat users happy. For good measure new features were added to get sat_per_kwu for FeeRate and to create P2TR wallets according to the BIP-086 descriptor template.
Jul 10, 2023General Discussion Items New Projects/Support Top BDK 1.0 PRs and issues Top BDK_CLI PRs and issues Top Other PRs and issues Upcoming Events
Jun 20, 2023New Projects/Support Blink Wallet Galoy live batch servicepayout side next week new hot wallet https://github.com/bitcoindevkit/bdk/pull/976#issuecomment-1572869091 how to block by block scaling Top PRs Evan working on RPCfirst step LocalChain PR then update example
Jun 6, 2023:calendar: Tues , 13:00 UTC :round_pushpin: Discord General Voice Channel Discussion Items [ ] TBD [ ] Any review begs? :pray: [ ] Blockers? 🪨 New Projects and Support
Sep 27, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up