下拉查看目录

附录4 | 精通比特币

附录4

附录四 sx工具下一些的命令

sx 命令如下: 不赞成 DEPRECATED ELECTRUM钱包式的确定密钥和地址 genaddr 由钱包种子或主公钥来生成一个比特币地址。 genpriv 只由种子来生成一个私钥。 genpub 由钱包种子或主公钥来生成一个公钥。 mpk 只由钱包种子来生成主公钥。 newseed 创建一个新的决定性的钱包种子。 试验中的 EXPERIMENTAL APPS wallet 试验性的命令行钱包。 离线区块链 OFFLINE BLOCKCHAIN 区块头 showblkhead 显示区块头细节 离线密钥和地址 OFFLINE KEYS AND ADDRESSES 基础操作 addr 查看公钥或私钥的比特币地址。 embed-addr 将记录数据嵌入区块链,生成新的地址。 get-pubkey 如果可行的话,得到地址公钥。 newkey 创建一个新私钥。 pubkey 查看私钥的公开部分。 validaddr 确认一个地址有效。 记忆存储BRAIN STORAGE brainwallet 从任意口令生成256位比特币私钥。 mnemonic 从128位electrum钱包或bip32种子生成12助记词。 HD / BIP32 hd-priv 从一个HD私钥创建新的HD 私钥。 hd-pub 从一个HD私钥或公钥创建一个新的HD公钥。 hd-seed 创建一个随机的新HD密钥。 hd-to-address 将 HD 公钥或私钥转为比特币地址。 hd-to-wif 将HD私钥转为WIF私钥。 MULTISIG ADDRESSES scripthash 从原始十六进制脚本创建BIP16脚本哈希值。 隐身STEALTH stealth-addr 从给定输入查看隐身地址。 stealth-initiate 初始化新的隐身支付。 stealth-newkey 生成新的隐身密钥和地址。 stealth-show-addr 显示具体隐身地址。 stealth-uncover 揭开隐身地址。 stealth-uncover-secret 放弃隐身。 离线交易 OFFLINE TRANSACTIONS mktx 创建一个未签名的tx。 rawscript 从脚本创建未处理的十六进制请求。 set-input 设置交易输入。 showscript 显示脚本细节。 showtx 显示交易细节。 sign-input 输入交易签名。 unwrap 使验证码有效,从原始十六进制串恢复版本字节和原始数据。 validsig 确认交易输入签名有效。 wrap 向十六进制串添加版本字节和验证码。 ONLINE (BITCOIN P2P) 区块链更新 BLOCKCHAIN UPDATES sendtx-node 把交易导入单个节点。 sendtx-p2p 把tx传向比特币网络。 ONLINE (BLOCKCHAIN.INFO) BLOCKCHAIN QUERIES (blockchain.info) bci-fetch-last-height 使用 blockchain.info 获取最后一个区块高度。 bci-history 从 blockchain.info 得到输出点、价值、消费总额的列表。 区块链更新 BLOCKCHAIN UPDATES sendtx-bci 把tx传向blockchain.info/pushtx。 ONLINE (BLOCKEXPLORER.COM) BLOCKCHAIN QUERIES (blockexplorer.com) blke-fetch-transaction 从 blockexplorer.com 获取交易 ONLINE (OBELISK) BLOCKCHAIN QUERIES balance 以聪为单位显示一个比特币地址的余额。 fetch-block-header 获取区块头。 fetch-last-height 获取最后的区块高度。 fetch-stealth 网络连接obelisk load balancer后台发出请求以获取隐身信息。 fetch-transaction 用网络连接向 obelisk load balancer后台请求以获取未处理交易。 fetch-transaction-index 在交易区块里获取区块高度和索引。 get-utxo 从给定地址集合里得到足够的尚未动用的交易输出,用以支付给定数量的聪。 history 从地址得到输出点、价值、消费总额列表。grep命令可以过滤未动用的输出,其结果可以被mktx命令调用。 validtx 确认交易有效。 BLOCKCHAIN UPDATES sendtx-obelisk 将tx传送到 obelisk 服务器。 BLOCKCHAIN WATCHING monitor 监控一个地址。 watchtx 通过网络搜索特定哈希值来查看交易。 OBELISK ADMIN initchain 初始化新区块链。 UTILITY EC MATH ec-add-modp 计算整数和整数相加结果。 ec-multiply 整数和点的乘积 ec-tweak-add 计算 POINT + INTEGER * G 结果。 FORMAT (BASE 58) base58-decode 从 base58 转为十六进制。 base58-encode 从 16 进制转为 base58。 FORMAT (BASE58CHECK) base58check-decode 从 base58check 转为十六进制。 base58check-encode 从十六进制转为 base58check。 decode-addr 将地址从 base58check 形式解码为内部 RIPEMD 表达。 encode-addr 将地址从内部 RIPEMD 编码为 base58check 形式。 FORMAT (WIF) secret-to-wif 将秘密指数转为WIF。 wif-to-secret 将WIF转为秘密指数。 HASHES ripemd-hash 从 STDIN 转为RIPEMD 哈希值。 sha256 取得数据的SHA256哈希值。 MISC qrcode 生成比特币离线二维码。 SATOSHI MATH btc 转换聪币为比特币 satoshi 将比特币转换为聪币。 输入“sx help COMMAND”,可以了解命令的具体信息。 接下来,我们看一些使用 sx 工具操作密钥和地址的例子。 用 newkey 命令利用系统的随机数生成器生成一个新的私钥。将标准输出存入 private_key 文件。 $ sx newkey > private_key $ cat private_key 5Jgx3UAaXw8AcCQCi1j7uaTaqpz2fqNR9K3r4apxdYn6rTzR1PL 现在,用 pubkey 命令将前面生成的私钥转成公钥。将 private_key 文件作为标准输入,以标准输出的方式导出到新文件 public_key 。 $ sx pubkey < private_key > public_key $ cat public_key 02fca46a6006a62dfdd2dbb2149359d0d97a04f430f12a7626dd409256c12be500 我们可以用 addr 命令将 public_key 的格式重新设定为地址。将 public_key 作为标准输入。 $ sx addr < public_key 17re1S4Q8ZHyCP8Kw7xQad1Lr6XUzWUnkG 生成的密钥是所谓的type-0型非决定性密钥,也就是说每个密钥都是从一个随机数生成器生成的。 sx 工具也支持 type-2 决定型密钥,先创建了一个主密钥,然后扩展生成一个子密钥链。 首先,我们生成种子,这是整个密钥链的基础。这也可应用于Electrum钱包以及其他类似应用。我们使用 new seed 命令来生成种子值。 $ sx newseed > seed $ cat seed eb68ee9f3df6bd4441a9feadec179ff1 种子值可以通过 mnemonic 命令转化为助记词,这比十六进制数字更方便易读,也更容易存储和输入。 $ sx mnemonic < seed > words $ cat words adore repeat vision worst especially veil inch woman cast recall dwell appreciate 使用助记词也可以用 mnemonic 命令重新生成种子。 $ sx mnemonic < words eb68ee9f3df6bd4441a9feadec179ff1 利用这个种子,我们现在可以生成一系列私钥和公钥,也就是一个密钥链。genpriv 命令可以从一个种子生成一系列私钥,addr 命令可以生成对应的公钥。 $ sx genpriv 0 < seed 5JzY2cPZGViPGgXZ4Syb9Y4eUGjJpVt6sR8noxrpEcqgyj7LK7i $ sx genpriv 0 < seed | sx addr 1esVQV2vR9JZPhFeRaeWkAhzmWq7Fi7t7 $ sx genpriv 1 < seed 5JdtL7ckAn3iFBFyVG1Bs3A5TqziFTaB9f8NeyNo8crnE2Sw5Mz $ sx genpriv 1 < seed | sx addr 1G1oTeXitk76c2fvQWny4pryTdH1RTqSPW 使用这种决定性的密钥,我们可以生成和再造成千上万的新密钥,它以一种关联链的形式从一个唯一的种子 生成的。这项技术已经使用在许多钱包应用中,仅用简单几个助记词,就可以备份和重现密钥,这种方式要比创建密钥时需要把钱包的随机生成的所有密钥一起备份要方便的多。


评论