🧑‍🏫
liualexiang
  • Introduction
  • Azure
    • AKS Basic
    • AKS Spark
    • AZ ACR SYNC
    • Azure CMI SDWAN
    • Azure LB DeepDive
      • Azure LB DeepDive
    • Azure Service Principal Basic
    • Azure Internal VM Network Connectivity
      • Azure Internal VM Network Connectivity
    • Azure Cli Build
    • Azure Vm Memory Monitor
  • Blockchain
    • BTC
  • CRISPR
    • 使用Parallel_Cluster提升CRISPA效率
  • OpenSource
    • ElasticSearch
      • ES Get Started
      • ES Search Query
      • Kibana 可视化
      • Logstash配置
    • Ansible 基础
    • Infra As Code
      • Pulumi Get Started
      • Terraform Basic
    • ZooKeeper 基础
    • RPC与REST
    • 使用Python申请大量内存测试
    • 使用TPC_DS产生压测数据
    • Superset
      • Superset部署手册
    • 代码扫描
    • Git
      • Git Basic
      • Github Action Basic
      • Gitlab与AzureAD集成
      • Gitbook 基础教程
    • K8S
      • enter_node
      • K8s X509 Client Cert
      • K8s Basic
      • K8s Oidc
      • Docker 基础
      • helm基础
      • K8S_Secrets管理
      • 深入了解K8S
      • 混沌工程
      • Istio
      • 生态
      • CRD开发
      • k8s网络
    • Cloud_Custodian
    • Jenkins Basic
    • Nginx
    • ETCD
    • 正则
    • VictoriaMetrics
    • Kafka
  • MySQL
    • MySQL 调优
  • Linux
    • SSH Tunnel 上网
    • 内存管理
    • 在Linux系统中通过LUKS加密磁盘
    • 量子计算 Basic
    • IO多路复用
    • Iptables
    • tmux和screen
    • Systemd
    • OS 基础
    • jq基础
    • yum
    • neovim
  • Web
    • Html Css
    • Web部署
    • 缓存
  • Programming
    • 算法
      • 返回list中最大生序子序列长度
    • Python技巧
      • Python的语法糖
      • Python常用装饰器
      • AsyncIO基础
      • 自动化测试pytest
      • python中的下划线
      • 面向对象
      • Python的坑
      • Python配置文件管理
      • HTTP Stream Response
      • Python项目管理
    • 设计模式
      • 设计模式
      • 面向对象的思想
      • 编程概念
    • Go
      • Go 基础
      • Go常用功能
      • 结构体入门
    • 前端
    • Vue
    • NodeJS
  • Math
    • 多项式插值法
  • Security
    • HTTP常见攻击
    • 加密与签名
    • RSA
    • ECDSA
  • Solidity
    • Solidity基础
    • Blockchain Testnet Faucet
  • Tools
    • 视频处理ffmpeg
    • IDE配置
    • iTerm2美化
    • 密码管理
    • FRP配置
    • 工具集
由 GitBook 提供支持
在本页
  1. Blockchain

BTC

bitcoin-cli 连 btc 节点的端口是 8332,如果是 testnet是 18332,协议http。signet是38332.

signet 与 testnet的不同:testnet跟mainnet对应,是完全一样的,每一个节点都可能是出块节点,这也就导致了可能不稳定,效率低等。signet控制了出块节点,只有特定的节点是测试节点,这样就能保证整个网络的稳定性以及效率。

BTC CLI: https://chainquery.com/bitcoin-cli

alias bitcoin-cli='/server/bitcoin/bin/bitcoin-cli --rpcuser=xx --rpcpassword=xxx'

# 创建一个钱包,本质是存在本地的一个 SQLite 数据库里
bitcoin-cli createwallet "alexwallet"
bitcoin-cli listwallets
# 删除钱包
bitcoin-cli unloadwallet "mywallet"

# 加载钱包
bitcoin-cli loadwallet alexwallet

# 查看钱包情况
bitcoin-cli -rpcwallet="alexwallet" getwalletinfo

# 在钱包里生成地址
bitcoin-cli -rpcwallet="alexwallet" getnewaddress

bitcoin-cli getaddressinfo tb1qt5gccdj9yyaq2vc5afj7pmx5cd9v408t2ww8mx

bitcoin-cli -rpcwallet="alexwallet" getaddressinfo "tb1qt5gccdj9yyaq2vc5afj7pmx5cd9v408t2ww8mx"

# 列出钱包里的所有地址(注意如果用 getnewaddress 之后,这里是看不到的,只有地址有钱,才能看到)
# 获得测试token https://bitcoinfaucet.uo1.net/send.php
bitcoin-cli -rpcwallet="alexwallet" listaddressgroupings
[
  [
    [
      "tb1q8uput7ms7vemlwelg00jr6tkd0cz7ypdfppvv7",
      0.00004900,
      ""
    ]
  ]
]
# 查看钱包余额
bitcoin-cli -rpcwallet="alexwallet" getbalance
bitcoin-cli -rpcwallet="alexwallet" listunspent

# 发起一笔转账
bitcoin-cli -rpcwallet="alexwallet" sendtoaddress "tb1qlj64u6fqutr0xue85kl55fx0gt4m4urun25p7q" 0.000003

# 获得钱包中所有地址,包括没有激活的
bitcoin-cli -rpcwallet="alexwallet" getaddressesbylabel ""

查看帮助 bitcoin-cli help 查看子命令的帮助 bitcoin-cli help createwallet

创建 Legacy 钱包 (非 HD Wallet) ,现在已经不推荐了

bitcoin-cli createwallet "my_legacy_wallet" false false "" false true false false`

address=$(bitcoin-cli -rpcwallet="my_legacy_wallet" getnewaddress "" legacy)
echo "New address: $address"

测试

root@ip-10-222-41-190:~# new_address=$(bitcoin-cli -rpcwallet="alexwallet" getnewaddress)
root@ip-10-222-41-190:~# echo "New Address: $new_address"
New Address: tb1q8uput7ms7vemlwelg00jr6tkd0cz7ypdfppvv7

# 获得测试token https://bitcoinfaucet.uo1.net/send.php
# browser 连接https://blockstream.info/testnet/address/tb1q8uput7ms7vemlwelg00jr6tkd0cz7ypdfppvv7

# https://coinfaucet.eu/en/btc-testnet/
# https://testnet.help/en/btcfaucet/testnet#log
# 未验证: https://tbtc.bitaps.com/
# 未验证 https://support.chainstack.com/hc/en-us/articles/900001638963-Bitcoin-testnet-faucets

BTC Multisig wallet

创建一个multisig wallet的脚本

#!/bin/bash -l

for ((n=1;n<=3;n++))
do
        echo "creating wallet"
        bitcoin-cli -testnet createwallet "participant_${n}"
        echo "done"
done


declare -A xpubs

for ((n=1;n<=3;n++))
do
 xpubs["internal_xpub_${n}"]=$(bitcoin-cli -testnet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/1/*"))][0] | .desc' | grep -Po '(?<=\().*(?=\))')

 xpubs["external_xpub_${n}"]=$(bitcoin-cli -testnet -rpcwallet="participant_${n}" listdescriptors | jq '.descriptors | [.[] | select(.desc | startswith("wpkh") and contains("/0/*") )][0] | .desc' | grep -Po '(?<=\().*(?=\))')
done
for x in "${!xpubs[@]}"; do printf "[%s]=%s\n" "$x" "${xpubs[$x]}" ; done

external_desc="wsh(sortedmulti(2,${xpubs["external_xpub_1"]},${xpubs["external_xpub_2"]},${xpubs["external_xpub_3"]}))"
internal_desc="wsh(sortedmulti(2,${xpubs["internal_xpub_1"]},${xpubs["internal_xpub_2"]},${xpubs["internal_xpub_3"]}))"

external_desc_sum=$(bitcoin-cli -testnet getdescriptorinfo $external_desc | jq '.descriptor')
internal_desc_sum=$(bitcoin-cli -testnet getdescriptorinfo $internal_desc | jq '.descriptor')

multisig_ext_desc="{\"desc\": $external_desc_sum, \"active\": true, \"internal\": false, \"timestamp\": \"now\"}"
multisig_int_desc="{\"desc\": $internal_desc_sum, \"active\": true, \"internal\": true, \"timestamp\": \"now\"}"

multisig_desc="[$multisig_ext_desc, $multisig_int_desc]"

echo $multisig_desc

# create a multi sig wallet
bitcoin-cli -testnet -named createwallet wallet_name="multisig_wallet_01" disable_private_keys=true blank=true


bitcoin-cli  -testnet -rpcwallet="multisig_wallet_01" importdescriptors "$multisig_desc"

bitcoin-cli  -testnet -rpcwallet="multisig_wallet_01" getwalletinfo

# bitcoin-cli -testnet -rpcwallet="multisig_wallet_01" getnewaddress

# 获得一些测试币,注意要安装 imagemagick
# python3 get_coin_testnet.py -c /root/bitcoin-27.0/bin/bitcoin-cli  -a tb1q0tzzd43zw6v6mr22rjwvjpqykdsat8kmyhdr2qkecv3pwsnph85qcjvz3m

测试

bitcoin-cli -rpcwallet="multisig_wallet_01" getnewaddress
tb1qdg5pfx9p4dg3z4dj47j0fjfrq5c3jrj7s9tg4ulyggx2razqf6lsfrtk9j
上一页Blockchain下一页CRISPR

最后更新于5个月前