07-1 Bitcoin 钱包开发简单流程
1 比特币钱包开发
因为是JS代码,所以会有很多看不懂的地方,没关系
1.1 地址生成
1 |
|
1.2 离线签名
1 |
|
1.3 扫链接口(分原生和Rosetta Api)
1.3.1原生Bitcoin接口【原生,不常用】
1.3.1.1获取活跃的最新区块
- 请求参数
1 |
|
- 返回内容
1 |
|
- “invalid” 该分支至少包含一个无效块
- “headers-only” 并非该分支的所有块都可用,但 headers 有效
- “valid-headers”所有块都可用于此分支,但它们从未经过完全验证
- “valid-fork” 该分支不是活动链的一部分,但经过充分验证
- “active”这是活跃主链的提示,这当然有效
1.3.1.2 获取区块信息
- 请求示范
1 |
|
- 返回内容
1 |
|
1.3.1.3 列出未花费的输入输出
- 请求示范
1 |
|
- 返回值
1 |
|
1.3.1.4发送交易到区块链网络
- 请求参数
1 |
|
- 返回值
1 |
|
1.3.2 Rosetta Api【常用,支持生态好】
Bitcoin Rosetta API 是由 Coinbase 提出的 Rosetta 标准的一部分,旨在为区块链和钱包提供一个统一的接口标准。这个标准化的接口使得与各种区块链的交互更加容易和一致,无论是对交易数据的读取还是写入。目前已经支持很多链,包含比特币,以太坊等主流链,也包含像 IoTex 和 Oasis 这样的非主流链。
3.2.1.Rosetta API 概述
Rosetta API 分为两部分:
- Data API:用于读取区块链数据。
- Construction API:用于构建和提交交易。
3.2.2. Data API
Data API 提供了一组端点,用于检索区块链数据,如区块、交易、余额等。主要端点包括:
- /network/list:返回支持的网络列表。
- /network/status:返回当前网络的状态信息。
- /network/options:返回支持的网络选项和版本信息。
- /block:返回指定区块的数据。
- /block/transaction:返回指定交易的数据。
- /account/balance:返回指定账户的余额。
- /mempool:返回当前未确认的交易池。
- /mempool/transaction:返回指定未确认交易的数据。
3.2.3. Construction API
Construction API 提供了一组端点,用于创建、签名和提交交易。主要端点包括:
- /construction/preprocess:分析交易需求并返回交易所需的元数据。
- /construction/metadata:返回构建交易所需的元数据。
- /construction/payloads:生成待签名的交易有效载荷。
- /construction/parse:解析交易并返回其操作。
- /construction/combine:将签名与待签名交易合并。
- /construction/hash:返回交易的唯一标识符(哈希)。
- /construction/submit:提交签名后的交易。
3.2.4.开发 BTC 钱包使用到的 Rosetta Api
为了具体实现 Rosetta API,开发者需要遵循 Rosetta 标准并根据比特币区块链的特性进行适配。以下是一些具体实现细节
数据结构:
- 区块:包含区块哈希、前一个区块哈希、区块高度、时间戳、交易列表等。
- 交易:包含交易哈希、输入输出列表、金额、地址等。
- 账户:包含账户地址和余额信息。
用到的接口
- /network/list:返回比特币主网和测试网信息。
- /network/status:返回当前最新区块、已同步区块高度、区块链处理器的状态等。
- /block 和 /block/transaction:返回区块和交易的详细信息,包括交易的输入输出、金额、地址等。
- /account/balance:通过查询比特币节点,返回指定地址的余额。
发送交易到区块链网络
- /construction/submit:通过比特币节点提交签名后的交易。
3.3. 文档资料
比特币开发文档:
Rosetta 开发文档:
https://docs.cdp.coinbase.com/rosetta/reference/networklist/
Rosetta 开发文档:
https://github.com/coinbase/mesh-ecosystem/blob/master/implementations.md
浏览器:
2、以太坊钱包开发
3、比特币schnorr地址和签名流程细化
而且专属名词太多啦,一句话就蹦出了lucky eap159 eip484 Blake 一大堆,不专注,一下子就让人懵了(主要是我这种币圈外的人)
07-1 Bitcoin 钱包开发简单流程
http://example.com/2024/05/30/07-1比特币钱包开发简单流程/