在 Blockcypher 上广播原始事务,在 POST 请求时出现错误
Broadcasting Raw Transaction on Blockcypher, getting a error on POST request
我有一个原始的比特币交易,我想用Blockcypher API进行广播,我正在使用axios发送POST请求:
var axios = require('axios')
axios.post('https://api.blockcypher.com/v1/bcy/test/txs/send', {
"tx": "010000000174770a05466c28df24425ac50dba86ead47af31778f01fa1069bf01816810a2b010000008b48304502210090c86f59c8df34979ccb485c524803e9ba1290cc4448cdbfdcc8f3cf3337102302202357e77439354acf7b178392720f433cfeac952d34098addb2eea7edcf7884c20141048520397beff2fe111c7af8aa42c99b317453b1595ec5c3b3cf9eb2059dd06b9b956165419d51a48d885aacb4df1004d7c93b30e2e53c6d4f64f9668c9fd7e92fffffffff02cd0d0000000000001976a914243170728a9278ed24b4ac7ba9df33bdadf7afd488ac00000000000000004d6a4b77723335322d33316472342d4e42412d33323132322d333435352d363933352d323334392d323334302d31323333322d39392d30322d31362d323031352d32336f6c2d313030303030303000000000"
})
.then(function (response) {
console.log(response);
})
.catch(function (response) {
console.log(response);
});
在终端中运行它时出现错误:
{ data: { error: 'Couldn''t deserialize request: json: cannot unmarshal string into Go value of type pooch.JSONTx' }
知道我的开机自检出了什么问题吗?我尝试使用 tx 而不是"tx"发布,但它仍然不起作用。在文档中,他们建议这样做:
var pushtx = {
tx: "01000000011935b41d12936df99d322ac8972b74ecff7b79408bbccaf1b2eb8015228beac8000000006b483045022100921fc36b911094280f07d8504a80fbab9b823a25f102e2bc69b14bcd369dfc7902200d07067d47f040e724b556e5bc3061af132d5a47bd96e901429d53c41e0f8cca012102152e2bb5b273561ece7bbe8b1df51a4c44f5ab0bc940c105045e2cc77e618044ffffffff0240420f00000000001976a9145fb1af31edd2aa5a2bbaa24f6043d6ec31f7e63288ac20da3c00000000001976a914efec6de6c253e657a9d5506a78ee48d89762fb3188ac00000000"
};
$.post('https://api.blockcypher.com/v1/bcy/test/txs/push', JSON.stringify(pushtx))
.then(function(d) {console.log(d)});
但是当我这样做时,我得到错误:
TypeError: undefined is not a function
所以我认为使用 axios 更容易,因为我至少得到了 Blockcypher 的回应。任何帮助将不胜感激!
完全披露:BlockCypher的开发者倡导者在这里。首先,根据格雷格在评论中的建议,在第一种情况下,使用/txs/send
端点,我们期望TX骨架。文档的"创建事务"部分中对此进行了更清晰的概述。
使用/txs/push
应该适用于您的情况,尽管我也遇到了错误。为了进行调查,我首先检查了我们的/txs/decode
端点,这是调试的第一步,因为它将向您展示我们的服务器如何反序列化原始事务。您可以在此处阅读有关它的更多信息。
var decodetx = {
tx: "01000000011935b41d12936df99d322ac8972b74ecff7b79408bbccaf1b2eb8015228beac8000000006b483045022100921fc36b911094280f07d8504a80fbab9b823a25f102e2bc69b14bcd369dfc7902200d07067d47f040e724b556e5bc3061af132d5a47bd96e901429d53c41e0f8cca012102152e2bb5b273561ece7bbe8b1df51a4c44f5ab0bc940c105045e2cc77e618044ffffffff0240420f00000000001976a9145fb1af31edd2aa5a2bbaa24f6043d6ec31f7e63288ac20da3c00000000001976a914efec6de6c253e657a9d5506a78ee48d89762fb3188ac00000000"
};
$.post('https://api.blockcypher.com/v1/bcy/test/txs/decode', JSON.stringify(decode))
.then(function(d) {console.log(d)});
这对我有用,返回解码(但不是推送!)事务:
{
"block_height": -1,
"block_index": -1,
"hash": "4e6dfb1415b4fba5bd257c129847c70fbd4e45e41828079c4a282680528f3a50",
"addresses": [
"CEztKBAYNoUEEaPYbkyFeXC5v8Jz9RoZH9",
"C1rGdt7QEPGiwPMFhNKNhHmyoWpa5X92pn"
],
"total": 4988000,
"fees": 12000,
"size": 226,
"preference": "high",
"relayed_by": "54.213.170.147, 127.0.0.1",
"received": "2016-02-17T20:16:43.124983132Z",
"ver": 1,
"lock_time": 0,
"double_spend": false,
"vin_sz": 1,
"vout_sz": 2,
"confirmations": 0,
"inputs": [
{
"prev_hash": "c8ea8b221580ebb2f1cabc8b40797bffec742b97c82a329df96d93121db43519",
"output_index": 0,
"script": "483045022100921fc36b911094280f07d8504a80fbab9b823a25f102e2bc69b14bcd369dfc7902200d07067d47f040e724b556e5bc3061af132d5a47bd96e901429d53c41e0f8cca012102152e2bb5b273561ece7bbe8b1df51a4c44f5ab0bc940c105045e2cc77e618044",
"output_value": 5000000,
"sequence": 4294967295,
"addresses": [
"CEztKBAYNoUEEaPYbkyFeXC5v8Jz9RoZH9"
],
"script_type": "pay-to-pubkey-hash",
"age": 386562
}
],
"outputs": [
{
"value": 1000000,
"script": "76a9145fb1af31edd2aa5a2bbaa24f6043d6ec31f7e63288ac",
"addresses": [
"C1rGdt7QEPGiwPMFhNKNhHmyoWpa5X92pn"
],
"script_type": "pay-to-pubkey-hash"
},
{
"value": 3988000,
"script": "76a914efec6de6c253e657a9d5506a78ee48d89762fb3188ac",
"spent_by": "892fd7b36c1c3a2e5edb9b4a5d4ffd9ba74d78d3acf3b249991bd8d10a287dbd",
"addresses": [
"CEztKBAYNoUEEaPYbkyFeXC5v8Jz9RoZH9"
],
"script_type": "pay-to-pubkey-hash"
}
]
}
这里的一切都看起来不错。所以我尝试使用/txs/push
,这次,通过cURL收集返回中的错误消息:
curl -d '{"tx":"01000000011935b41d12936df99d322ac8972b74ecff7b79408bbccaf1b2eb8015228beac8000000006b483045022100921fc36b911094
280f07d8504a80fbab9b823a25f102e2bc69b14bcd369dfc7902200d07067d47f040e724b556e5bc3061af132d5a47bd96e901429d53c41e0f8cca012102152e2bb5b273561ece7bbe8b1d
f51a4c44f5ab0bc940c105045e2cc77e618044ffffffff0240420f00000000001976a9145fb1af31edd2aa5a2bbaa24f6043d6ec31f7e63288ac20da3c00000000001976a914efec6de6c2
53e657a9d5506a78ee48d89762fb3188ac00000000"}' https://api.blockcypher.com/v1/bcy/test/txs/push
{"error": "Error validating transaction: Transaction with hash 4e6dfb1415b4fba5bd257c129847c70fbd4e45e41828079c4a282680528f3a50 already exists.."}
果然,根据该错误消息,该事务已经存在于我们的内部测试网上,如下所示:
https://live.blockcypher.com/bcy/tx/4e6dfb1415b4fba5bd257c129847c70fbd4e45e41828079c4a282680528f3a50/
我认为您正在尝试推送已经推送的原始事务。如果您想测试交易创建,我建议您在我们的测试网上生成您自己的地址:
http://dev.blockcypher.com/#generate-address-endpoint
您可以使用我们的水龙头将一些硬币发送到这些地址:
http://dev.blockcypher.com/#testing(或通过此处的 Web 界面:https://accounts.blockcypher.com/blockcypher-faucet )。
然后按照"创建交易"中概述的步骤操作:
http://dev.blockcypher.com/#creating-transactions
希望对您有所帮助!
- 尝试发布大型JSON数据时出现错误请求错误
- 仅在 IE 中使用 jQuery 发布数据时出现错误请求错误
- JavaScript JSONP请求错误--未捕获的语法错误:意外的令牌:
- 正在生成$http.get请求..错误
- CORS预检请求错误无法通过安装npm cors软件包解决
- JSON PUT 请求错误
- 400 错误请求错误在 Ajax POST 到 spring RestController
- 使用 cURL 请求 svg.sencha.io 时请求错误
- WCF Web 服务在通过 Javascript 调用时返回“错误请求”错误
- JSFiddle “请使用后请求”错误
- 使用 JS 更改映像路径的请求错误
- AngularJS对跨源资源执行OPTIONS HTTP请求=>错误401
- 条纹::无效请求错误(此客户没有附加的付款来源)
- JSON 请求错误 500
- Ajax 请求错误 404
- 在 Node.js 服务器内发出异步请求错误:“类型错误:对象 #<对象> 没有方法'_implicitHeader'”
- 为什么这个 $.getJSON 请求错误
- 角度/业力 - 预期请求和观察到的请求相同时的“意外请求”错误
- 从 Mapbox.js 使用“LoadURL()”时出现“跨源请求错误”
- Chrome 应用/扩展程序 - 后台请求错误,或允许应用问题加载 Google 文档 API