比特币对接文档

news2024/12/26 14:34:57

比特币对接

地址分类

  • p2sk(``)
  • p2skh(主网地址是以"1"开头,例如:16dN3XhaTejyZFy4hWompK2x8de2T46wA8; 测试网是以"m"或"n"开头, 例如:mvZjn2485hwxjVPJoLAZVyJKUDn8aGpBy5)
  • p2sh (主网地址是以"3"开头,例如:33ZzFZZJcvtnLBWRdne6F9SpD9Rc7sjSDX; 测试网以"2"开头,例如:2Mt5wo9k8ykrJLrszhom1drPLNSArYAbLsH; ), 目前, 多重签名基本上使用这种类型地址

提币流程

1.地址导入

  • 热钱包(私钥在钱包软件中):通过钱包密码就可以直接进行转账

  • 观察钱包(私钥不在钱包软件中):只能监测地址的入币和出币,可以通过listunspent列出其utxo集, 也可以使用createrawtransaction创建交易

2.列出utxo

通过rpc接口listunspent列出一个地址的utxo集

listunspent  最小确认数  最大确认数  ["地址1", "地址2" ]  include_unsafe(是否包含不安全的utxo,即确认数太少)  query_options("其他查询选项")

例如:

listunspent 0 9999999 '[\'2MyeRq1tEWJR9rNeTcAZzoW6tUZiQpvRJum\']' true  

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.创建裸交易

createrawtransaction "[{\"txid\":\"1f945d93db219da806538eacb9251856687c40b5879941ddd01692734c8c229d\", \"vout\":1}]" "{\"mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB\":\"0.0001\",\"2Mt5wo9k8ykrJLrszhom1drPLNSArYAbLsH\":\"0.028000\"}"

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4.交易签名(离线, 在线)

  • 离线签名(支持多签, 如果是p2sh地址, 需要填写redeemScript, redeemScript创建多签地址时生成的, 如果是普通p2sh地址需要将私钥导入钱包,使用listunspent可以查看到redeemScript)
signrawtransactionwithkey 02000000019d228c4c739216d0dd419987b5407c68561825b9ac8e5306a89d21db935d941f0100000000ffffffff0210270000000000001976a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac80b92a000000000017a9140936dda3ae8df6ae9c8f3f48948caaad60cc44d18700000000 "[\"cPGsdAQLFnKRWrtbGKbdcbLRCnx2MEJ7vk5uCFy9a6PRpNaJDsAT\"]" "[{\"txid\":\"1f945d93db219da806538eacb9251856687c40b5879941ddd01692734c8c229d\", \"vout\":1, \"redeemScript\": \"0014db469d3cddb96c5fb6a6b5bebb9bc97ef71cc0e0\", \"scriptPubKey\": \"a9140936dda3ae8df6ae9c8f3f48948caaad60cc44d187\",\"amount\": 0.02990000}]" "ALL"

  • 在线签名(私钥在钱包中)不需要inputs

  • 普通p2skh地址(主网是"1"开头, 测试网是"m"或"n"开头), input中不需要填写 redeemScript

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.发送交易

在全节点上使用sendrawtransaction发送即可

如果在signerawtransaction时,input中的amout填写错误, 在发送sendrawtransaction会出现non-mandatory-script-verify-flag (Signature must be zero for failed CHECK(MULTI)SIG operation) (code 64) (code -26)


sendrawtransaction 020000000001019d228c4c739216d0dd419987b5407c68561825b9ac8e5306a89d21db935d941f0100000017160014db469d3cddb96c5fb6a6b5bebb9bc97ef71cc0e0ffffffff0210270000000000001976a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac80b92a000000000017a9140936dda3ae8df6ae9c8f3f48948caaad60cc44d1870247304402206647f4945ca9cf625a66b9b80d72deb98a21e52ede4c4958644f51c390c814620220330a6b8e238f63011b8514303002a0582961e2a68771fd22429ca039509f864b01210246cb83e5dc00e07bdb9ddf4a27c98ec6272a20df4baaeadbbc2b996847955e3200000000

txid如下:
75eaa247413b9b1cbd1aa4000a4e732be1fb6182f17b36435a6cfee4e3737a78

6.交易确认

算法描述:

getrawtransaction 75eaa247413b9b1cbd1aa4000a4e732be1fb6182f17b36435a6cfee4e3737a78 true

{
  "txid": "75eaa247413b9b1cbd1aa4000a4e732be1fb6182f17b36435a6cfee4e3737a78",
  "hash": "1e2b637a3a7bc409e9db6c83b015f9682a075f3cec88ff3cc1407023cba938db",
  "version": 2,
  "size": 249,
  "vsize": 168,
  "weight": 669,
  "locktime": 0,
  "vin": [
    {
      "txid": "1f945d93db219da806538eacb9251856687c40b5879941ddd01692734c8c229d",
      "vout": 1,
      "scriptSig": {
        "asm": "0014db469d3cddb96c5fb6a6b5bebb9bc97ef71cc0e0",
        "hex": "160014db469d3cddb96c5fb6a6b5bebb9bc97ef71cc0e0"
      },
      "txinwitness": [
        "304402206647f4945ca9cf625a66b9b80d72deb98a21e52ede4c4958644f51c390c814620220330a6b8e238f63011b8514303002a0582961e2a68771fd22429ca039509f864b01",
        "0246cb83e5dc00e07bdb9ddf4a27c98ec6272a20df4baaeadbbc2b996847955e32"
      ],
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00010000,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 9f9a7abd600c0caa03983a77c8c3df8e062cb2fa OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
        ]
      }
    },
    {
      "value": 0.02800000,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 0936dda3ae8df6ae9c8f3f48948caaad60cc44d1 OP_EQUAL",
        "hex": "a9140936dda3ae8df6ae9c8f3f48948caaad60cc44d187",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2Mt5wo9k8ykrJLrszhom1drPLNSArYAbLsH"
        ]
      }
    }
  ],
  "hex": "020000000001019d228c4c739216d0dd419987b5407c68561825b9ac8e5306a89d21db935d941f0100000017160014db469d3cddb96c5fb6a6b5bebb9bc97ef71cc0e0ffffffff0210270000000000001976a9149f9a7abd600c0caa03983a77c8c3df8e062cb2fa88ac80b92a000000000017a9140936dda3ae8df6ae9c8f3f48948caaad60cc44d1870247304402206647f4945ca9cf625a66b9b80d72deb98a21e52ede4c4958644f51c390c814620220330a6b8e238f63011b8514303002a0582961e2a68771fd22429ca039509f864b01210246cb83e5dc00e07bdb9ddf4a27c98ec6272a20df4baaeadbbc2b996847955e3200000000",
  "blockhash": "00000000000001bc26994340915b8b13db186c66e065b572ca684ab377bf64ef", //交易所在区块的区块hash
  "confirmations": 4,   //交易确认数
  "time": 1550718558,
  "blocktime": 1550718558
}
getblock 00000000000001bc26994340915b8b13db186c66e065b572ca684ab377bf64ef


{
  "hash": "00000000000001bc26994340915b8b13db186c66e065b572ca684ab377bf64ef",
  "confirmations": 7,  //目前区块确认数
  "strippedsize": 1022,
  "size": 1707,
  "weight": 4773,
  "height": 1479868,
  "version": 807034880,
  "versionHex": "301a6000",
  "merkleroot": "0799ecf47189b8c6f302965fa2fbcf289099fb6264a290ba2643a051989a4f63",
  "tx": [
    "3103afff6e37d3edbb03a97fc2e2b1c46758e837d7569a9cd797de17a0ec35a9",
    "75eaa247413b9b1cbd1aa4000a4e732be1fb6182f17b36435a6cfee4e3737a78",
    "cb08675a7f240a6a9b86b8e50535001f8e75092013c1f2370b6f39f5e550fad2",
    "80d70233474d9d9383c24bd3aec1d94304f92ee49bb9cccc1fac67cb297663fc"
  ],
  "time": 1550718558,
  "mediantime": 1550718216,
  "nonce": 658858781,
  "bits": "1a03f010",
  "difficulty": 4260551.067022134,
  "chainwork": "0000000000000000000000000000000000000000000000f563640f85fedea691",
  "nTx": 4,
  "previousblockhash": "00000000000002580ef22c6a097723f010e56bd046360d5f8eefa8dcbb91e84d",
  "nextblockhash": "000000000000007ed7332a15fbe4566e1e5410966d4a3b48b2789695e20ef0a6"
}

区块监测(充币通知)

  • 方案1(理论上适用所有币)

    解析最新区块中的交易, 找到关心的交易

    根据区块hash获取区块信息

  • 方案2(比特币可以用这种方法做, 其他币未知)

    将地址导入钱包中(观察钱包), 使用 listunspent(可以设置确认数)来监测区块变化, 例如:使用listunspent 0 0 ["地址A"]可以查看交易池中刚刚收到的交易, 通过设置确认数可以查看地址是否入币了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构笔记1-19(补充之前没有提及的细节)

目录 算法的五大特征 时间复杂度 next数组 nextval数组 树结点的计算 满二叉树和完全二叉树 线索二叉树 树的存储结构 森林、树之间的转换 哈夫曼树的构造 这几个红框,因为之前在别的视频有学过了,故不再看了。如果到时候还有什么需要查缺补…

[项目推荐]EmoLLM-心理健康大模型

EmoLLM 是一系列能够支持理解用户-支持用户-帮助用户心理健康辅导链路的开源心理健康大模型,由LLM指令微调而来。它旨在全面理解和促进个体、群体乃至整个社会的心理健康状态。 项目介绍 GitHub:https://github.com/SmartFlowAI/EmoLLM 【EmoLLM项目提供…

如何基于Excel文件图形化从零建表并导入数据(以MySQL和SQLynx为例)

目录 1. 准备Excel数据 2. 导入Excel数据 a. 登录SQLynx b. 导入Excel文件 3. 验证数据 4. 使用和管理表 5. 总结 在实际的业务过程中,我们经常会有很多数据存储在Excel中,但在Excel中的数据分析不如使用SQL和数据库方便,数据量大些的…

VS修改项目名称

本文以Visual Studio2015为例 1.VS体系是由一个个单独项目组成一个解决方案,如果要修改解决方案名称直接右击——重命名。 修改解决方案下的项目名称:选中项目名称——右击——重命名 同时修改项目所在路径下的同名文件夹名称和里面的项目名称.vcxproj、…

【仿真建模-anylogic】EventRate原理解析

Author:赵志乾 Date:2024-06-13 Declaration:All Right Reserved!!! 1. 类图 2. 原理解析 EventOriginator是Anylogic中各类事件的父类,对外暴露的接口主要有: 函数功能boolean isActive()判定…

人类如何挣脱被人工智能替代的命运?

人工智能技术的迭代升级,使得“换脸”“拟声”成为可能,我如何证明不是“我”?面对人工智能超高的生产效率,我如何与人工智能“抢工作”?在人工智能时代,如何回应这类疑问?挣脱被替代的命运&…

Windows 11 24H2版首发体验!附详细更新升级安装教程

Windows 11 24H2 版首发体验!这是微软2024年的大版本更新,新增超多新功能,以下会给你细细道来。这个版本目前小编亲测,使用非常流畅,没有什么明显问题。系统是已经集成了VB6/VC2005/VC2008/VC2010/VC2012/VC2013/VC201…

618哪些数码产品比较好?2024超高人气产品推荐!

随着6.18大促的脚步渐近,你是否已经按捺不住内心的激动,想要在网络购物的海洋中畅游,尽情享受购物的狂欢?然而,面对繁多的商品和各式各样的优惠活动,你是否感到了一丝迷茫?作为一位经验丰富的网…

补偿 EMI 滤波器 X 电容对有源 PFC 功率因数的影响

现代开关模式电源使用 X 电容器和 Y 电容器与电感器的组合来过滤共模和差模 EMI。滤波器元件位于任何有源(或无源)功率因数校正 (PFC) 电路的前面(图 1),因此 EMI 滤波器的电抗对功率因数 (PF) 造成的任何失真都会改变…

2024/6/11 英语每日一段

They found that, regardless of culture, greater mental well-being is linked with feeling emotions that we believe are appropriate to our situation, rather than just having positive emotions regardless of context--“feeling right” as opposed to “feeling g…

某商标网cookie - FECA

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9jYXMuc2JqLmNuaXBhLmdvdi5jbi9jYXMvbG9naW4 事情起因 该网站是瑞数6代,瑞数…

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品(iPhone、iPad、Mac等)及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为:亿美元 。 数据说明: 数据整理自苹果公司历年10-K文件,每年10-K文件可能对之前年…

Python Flask框架基础(七)留言板

本章示例程序是一个非常简单的留言板程序SayHello,涉及的知识完全是前面六个章节的内容 。这一章会基于这个程序介绍一种组织代码的形式,并了解Web程序开发流程,对前面六章的知识进行简单的回顾复习。 在具体的开发中,代码编写主…

saas企业营销必看:如何正确选择客户裂变系统?

SaaS企业如何营销,如何以低成本又高效的方式获客,是一直以来的难题。对于选择转型PLG模式的saas企业来说,选择合适的客户裂变系统帮助企业完成从老客户到新客户1到N的裂变非常重要,关乎着PLG模式是否能成功、获客是否能留存和转化…

C语言----字符函数和字符串函数

在编程的过程中,我们要经常处理字符和字符串,为了方便操作字符和字符串,c语言标准库中提供的一系列库函数,接下来我们就开始学习与认识他们 1.字符分类函数 c语言中有一系列的函数是专门做字符分类的,也就是一个字符…

yolov8数据处理方式

数据处理 在YOLOv8中,数据处理是非常重要的一环,它包括数据加载、数据增强、数据预处理和数据标签处理等步骤。以下是YOLOv8中常用的数据处理方式及常用处理方法的介绍: 1.数据加载: 数据加载是指将训练和测试数据加载到模型中进…

像素蛋糕Photoshop颜色导出不一致问题分析与解决

问题点:发现用像素蛋糕修完图明天应该为最右边图片显示 模特应该是白皙的,但是导出图片无论是否勾选SRGB都表现的为种间图片颜色一样 饱和度巨高。 问题分析:那这一定是颜色配置文件出现问题,找到客服表示可以去PS打开看是否与预…

沉降观测点的定义、重要性、建设与选择

沉降观测点,简称沉降点,是指在建筑物、构筑物或地基等结构物上设置的用于测量其垂直位移(沉降)的特定位置。这些点通常被标记并安装相应的监测设备,以便长期、连续地监测结构物的沉降情况。 点击输入图片描述(最多30字&#xff09…

工业企业的物料主数据管理应该如何做?

前言:如果我们说主数据是企业的“黄金数据”,那么对于制造型企业来说物料主数据就是企业的“钻石”数据。物料主数据贯穿于制造型企业的设计、工艺、采购、生产、库存、物流、销售的各个环节。做好物料主数据管理,是企业保有竞争力的关键&…

Codeforces Global Round 26 E. Shuffle 【换根DP】

E. Shuffle 题意 给定一颗 n n n 个节点的树 T T T,现在要求恰好执行下面的程序操作一次: 从 T T T 中选择一个点,作为 T 2 T_2 T2​ 的新根节点将这个点从 T T T 中删除,现在 T T T 被分成了一个或一个以上的连通块树对每…