巴比特论坛

巴比特App广告
发表于 2019-1-11 13:54:13 | 显示全部楼层

我现在有几个困惑,在交易的时候,可以使用二种方式。
1、一种是裸交易通过createrawtransaction、decoderawtransaction、signrawtransaction、sendrawtransaction命令。
另一种是通过sendtoaddress命令。
这二种命令有啥区别?而且用第一种方式的时候,启动命令后面要加一些东西的。bitcoind -daemon  后面还有一个啥参数的。什么时候用第一种,什么时候用第二种?

2、通过createrawtransaction时{"2MyGwdYYAfw****B5LZCHSgR": 0.025, "2MxoseVvPiQ***2p8sUH4v7": 0.0245}'
前面的是转回我自己的钱包地址,后面是转到对方的地址。
有个问题,我自己的钱包只有0.5,我的手续费就一定是0.0005了吗?能不能让系统自动计算手续费?我也不知道最少要付多少。

3、我在做测试网的时候,有些命令要用-testnet 有些是用-regtest,这二个有什么区别?

16条回复 跳转到指定楼层

fanso1 | 水手 | 发表于 2019-1-11 20:19:33 | 显示全部楼层
可能问的有点小白。我刚开始学
有懂的大神或者同学,请帮忙回答一下,谢谢!
数字小可爱 | 水手 | 发表于 2019-1-11 21:32:55 | 显示全部楼层
fanso1 | 水手 | 发表于 2019-1-11 21:40:00 | 显示全部楼层
我看了,但是那个是介绍命令,
还是解决不了我的问题。
fanso1 | 水手 | 发表于 2019-1-12 10:00:05 | 显示全部楼层
继续求教!!!
fanso1 | 水手 | 发表于 2019-1-12 19:11:47 | 显示全部楼层
再给自己顶顶。有懂的请给解释解释。
fen_xiao | 队长 | 发表于 2019-1-13 15:29:12 | 显示全部楼层
-regtest 表示启动的是 regtest 网络;不同网络之间的区别在于创世区块不同。
fen_xiao | 队长 | 发表于 2019-1-13 15:32:22 | 显示全部楼层

CreateRawTransaction

createrawtransaction调用创建一个未签名的序列化交易,该交易可以将一个UTXO 转让给指定的P2PKH地址或P2SH地址。该交易不会存储在钱包里,也不会发送到网络 中。

参数

Inputs:交易输入数组,每个成员对象的结构如下:
txid:UTXO的交易id
vout:UTXO的输出序号
Sequence:序列号,可选
Outputs:交易输出对象,键为地址,值为金额
Locktime:声明该交易生效的最早时间,可选

返回值

createrawtransaction调用返回生成的未签名交易的序列化字符串。

示例代码
下面的命令将返回一个未签名的裸交易字符串:

~$ bitcoin-cli -testnet createrawtransaction '''
  [
    {
      "txid": "1eb590cd06127f78bf38ab4140c4cdce56ad9eb8886999eb898ddf4d3b28a91d",
      "vout" : 0
    }
  ]''' '{ "mgnucj8nYqdrPFh2JfZSB1NmUThUGnmsqe": 0.13 }'

输出结果如下:

01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f12\
06cd90b51e0000000000ffffffff01405dc600000000001976a9140dfc8bafc8\
419853b34d5e072ad37d1a5159f58488ac00000000
fen_xiao | 队长 | 发表于 2019-1-13 15:33:36 | 显示全部楼层

DecodeRawTransaction

decoderawtransaction调用将一个序列化的交易字符串解码为JSON对象。

参数

SerializedTransaction:要解码的裸交易字符串

返回值

成功解码后,decoderawtransaction返回一个JSON对象,否则返回null。

示例代码

下面命令解码指定的裸交易:

~$ bitcoin-cli decoderawtransaction 0100000001bafe2175b9d7b3041ebac\
529056b393cf2997f7964485aa382ffa449ffdac02a000000008a47304402201\
3d212c22f0b46bb33106d148493b9a9723adb2c3dd3a3ebe3a9c9e3b95d8cb00\
220461661710202fbab550f973068af45c294667fc4dc526627a7463eb23ab39\
e9b01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815\
b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08\
ffb10d4b8ffffffff01b0a86a00000000001976a91401b81d5fa1e55e069e3cc\
2db9c19e2e80358f30688ac00000000

输出结果如下:

{
    "txid": "52309405287e737cf412fc42883d65a392ab950869fae80b2a5f1e33326aca46",
    "hash": "52309405287e737cf412fc42883d65a392ab950869fae80b2a5f1e33326aca46",
    "size": 223,
    "vsize": 223,
    "version": 1,
    "locktime": 0,
    "vin": [
        {
            "txid": "2ac0daff49a4ff82a35a4864797f99f23c396b0529c5ba1e04b3d7b97521feba",
            "vout": 0,
            "scriptSig": {
                "asm": "3044022013d212c22f0b46bb33106d148493b9a9723adb2c3dd3a3ebe3a9c9e3b95d8cb00220461661710202fbab550f973068af45c294667fc4dc526627a7463eb23ab39e9b[ALL] 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
                "hex": "473044022013d212c22f0b46bb33106d148493b9a9723adb2c3dd3a3ebe3a9c9e3b95d8cb00220461661710202fbab550f973068af45c294667fc4dc526627a7463eb23ab39e9b01410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
            },
            "sequence": 4294967295
        }
    ],
    "vout": [
        {
            "value": 0.06990000,
            "n": 0,
            "scriptPubKey": {
            "asm": "OP_DUP OP_HASH160 01b81d5fa1e55e069e3cc2db9c19e2e80358f306 OP_EQUALVERIFY OP_CHECKSIG",
                "hex": "76a91401b81d5fa1e55e069e3cc2db9c19e2e80358f30688ac",
                "reqSigs": 1,
                "type": "pubkeyhash",
                "addresses": [
                    "1A6Ei5cRfDJ8jjhwxfzLJph8B9ZEthR9Z"
                ]
            }
        }
    ]
}
fen_xiao | 队长 | 发表于 2019-1-13 15:34:42 | 显示全部楼层

SignRawTransaction

signrawtransaction调用使用钱包中的私钥对指定的序列化交易字符串进行签名。

参数

Transaction:要签名的交易字符串
Dependencies:依赖的UTXO详情数组,成员结构如下:
txid:UTXO所在的交易ID
vout:UTXO在输出中的序号
scriptPubKey:输出的公钥脚本
redeemScript:如果公钥脚本对应于脚本哈希,则本字段指向完整的赎回脚本
PrivateKeys:用于签名的私钥数组
SigHashType:签名哈希类型,可以是:
ALL
NONE
SINGLE
ALL | ANYONECANPAY
NONE | ANYONECANPAY
SINGLE | ANYONECANPAY

返回值

signrawtransaction调用返回签名后的交易信息,结构如下:

hex: 签名后的交易序列字符串,16进制表示
complete:交易是否具备完整签名,false表示还需要更多的签名

示例代码

下面命令使用指定的私钥进行裸交易签名:

~$ bitcoin-cli -testnet signrawtransaction 01000000011da9283b4ddf8d\
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e0000000000ffff\
ffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a51\
59f58488ac00000000

输出结果如下:

{
    "hex" : "01000000011da9283b4ddf8d89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a47304402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000",
    "complete" : true
}
fen_xiao | 队长 | 发表于 2019-1-13 15:35:13 | 显示全部楼层

SendRawTransaction

sendrawtransaction调用验证指定交易并将其广播到P2P网络中。

参数

Transaction:序列化的交易码流,16进制字符串
AllowHighFees:是否允许高额手续费,可选,默认值:false

返回值

成功时sendrawtransaction调用返回交易ID,否则返回错误信息。

示例代码

下面的命令验证指定的序列化签名交易并将其广播至其他节点:

~$ bitcoin-cli -testnet sendrawtransaction 01000000011da9283b4ddf8d\
89eb996988b89ead56cecdc44041ab38bf787f1206cd90b51e000000006a4730\
4402200ebea9f630f3ee35fa467ffc234592c79538ecd6eb1c9199eb23c4a16a\
0485a20220172ecaf6975902584987d295b8dddf8f46ec32ca19122510e22405\
ba52d1f13201210256d16d76a49e6c8e2edc1c265d600ec1a64a45153d45c29a\
2fd0228c24c3a524ffffffff01405dc600000000001976a9140dfc8bafc84198\
53b34d5e072ad37d1a5159f58488ac00000000

输出结果如下:

f5a5ce5988cc72b9b90e8d1d6c910cda53c88d2175177357cc2f2cf0899fbaad
fen_xiao | 队长 | 发表于 2019-1-13 15:35:44 | 显示全部楼层

SendToAddress

sendtoaddress调用向指定的地址发送指定数量的比特币。该调用 需要节点启用钱包功能。

参数

ToAddress:接收地址
Amount:发送的比特币数量
Comment:备注文本
CommentTo:备注接收人
AutoFeeSubtract:是否自动扣除手续费,默认值:false

返回值

sendtoaddress调用返回交易ID。

示例代码

下面的命令向指定的地址发送0.1个比特币:

~$ bitcoin-cli -testnet sendtoaddress mmXgiR6KAhZCyQ8ndr2BCfEq1wNG2UnyG6 \
  0.1 "sendtoaddress example" "Nemo From Example.com"

输出结果如下:

a2a2eb18cb051b5fe896a32b1cb20b179d981554b6bd7c5a956e56a0eecb04f0
dujbo | 副船长 | 发表于 2019-1-13 15:37:51 来自手机版 | 显示全部楼层
系统不会自动计算手续费的。必须指定找零地址和金额。
dujbo | 副船长 | 发表于 2019-1-13 15:39:13 来自手机版 | 显示全部楼层
没指定找零,剩下的就都是手续费了。所以…
sevenZNBTC | 船员 | 发表于 2019-1-14 12:00:26 | 显示全部楼层
被薅羊毛了
高级模式
您需要登录后才可以发帖 登录 | 立即注册 | 用新浪微博登录

本版积分规则

搜索

0关注 2粉丝 4主题
返回顶部 返回列表

登录

分享 发帖