开发钱包之前,我们需要有以下的预备知识。
第一,什么是钱包,以及相关的分类。
本文站在开发者的角度,给读者讲解下怎么样和钱包进行交互,以及如何开发一个钱包。
我们怎么样理解钱包呢?简单讲它是连接区块链的一个入口。目前比较成熟的公链,如比特币、以太坊都有很多钱包可以选择。一般钱包需要完全访问你的用户资产,也就是会要求你输入私钥。钱包的作恶成本极低,这也是笔者建议选择开源钱包的原因之一。
题图来自:?admin/DelphiWhitePaperInterpretation/8855104.com
第二,需要了解下什么是?RPC、JSON-RPC?以及?JSON。
远程过程调用是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用,例:JavaRMI。
慢雾:利用者通过执行恶意提案控制了Tornado.Cash的治理:金色财经报道,SlowMist发布Tornado.Cash治理漏洞解析。 5月20日,Tornado.Cash遭受了治理攻击,利用者通过执行恶意提案控制了Tornado.Cash的治理。5月13日,利用者发起了20提案,并在提案中说明20提案是对16提案的补充,具有相同的执行逻辑。但实际上,提案合约多了一个自毁逻辑,其创建者是通过create2创建的,具有自毁功能,所以在与提案合约自毁后,利用者仍可以部署不同的以与以前相同的方式将字节码发送到相同的地址。不幸的是,社区没有看到拟议合约中的犯规行为,许多用户投票支持该提案。
在5月18日,利用者通过创建具有多个交易的新地址,反复将0代币锁定在治理中。利用提案合约可以销毁并重新部署新逻辑的特性,利用者在5月20日7:18(UTC)销毁了提案执行合约,并在同一地址部署了一个恶意合约,其逻辑是修改用户在治理中锁定的代币数量。
攻击者修改完提案合约后,于5月20日7:25(UTC)执行恶意提案合约。该提案的执行是通过 Delegatecall 执行的,因此,该提案的执行导致治理合约中由开发者控制的地址的代币锁定量被修改为 10,000。提案执行完成后,攻击者从治理库中解锁了TORN代币。金库中的TORN代币储备已经耗尽,同时利用者控制了治理。[2023/5/21 15:17:00]
RPC的主要功能目标是让构建分布式计算更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。
LooksRare要求OpenSea确认不会被Operator Filter屏蔽:金色财经报道,NFT市场LooksRare在社交媒体发文称,希望OpenSea再次确认不会被Operator Filter屏蔽这件事,LooksRare声称OpenSea此前的推文内容有点含糊,他们寻求OpenSea做进一步澄清但到目前为止并没有任何人做出回应。此前OpenSea宣布启动限时0手续费交易,而且还更新运营商过滤器Operator Filter,以允许拥有相同政策的NFT市场可以共同增加市场流动性,但LooksRare的声明暗示OpenSea可能并没有执行相关举措。[2023/2/20 12:18:02]
RPC调用分为以下两种:
同步调用,客户方等待调用执行完成并返回结果。
异步调用,客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。
异步和同步的区分在于是否等待服务端执行完成并返回结果。
IntoTheBlock:加密市场出现底部信号,但宏观环境仍然不稳定:1月23日消息,加密货币分析平台IntoTheBlock表示,尽管链上数据暗示加密资产熊市底部,但整体宏观环境仍然不稳定。IntoTheBlock发现,长期比特币持有者或拥有BTC至少一年的交易者的BTC数量在2022年激增,此类投资者以在熊市期间购买BTC并创造支撑位而闻名。“在2022年,我们看到持有一年以上的地址(Hodlers)拥有的比特币数量从1000万枚BTC增加到1500万枚BTC,增长50%。这种模式在以前的熊市中已经被观察到,只有在(价格)创下新高之后,Hodlers的余额才会下降。”
此外,目前有一半的比特币持有者处于亏损状态,最近几次比特币价格在熊市触底时也是这样的情况。(The Daily Hodl)[2023/1/23 11:26:52]
远程过程调用是一个分布式计算的客户端-服务器的例子,它简单而又广受欢迎。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。由于存在各式各样的变体和细节差异,对应地派生了各式远程过程调用协议,而且它们并不互相兼容。其中我们广为使用的是一个叫做?JSON-RPC?的协议。
欧盟分布式账本金融交易规则将于明年3月试点:金色财经报道,欧盟 (EU) 监管机构已经制定了如何申请运行基于分布式账本技术 (DLT) 的金融市场,预计将于明年3月开始的新试点。欧盟立法者认为,支持加密技术的技术可以在交易股票、债券和其他证券等金融工具时减少中间商,但人们担心普通散户投资者是否能够在实践中获得好处。[2022/12/16 21:49:24]
JSON-RPC,是一个无状态且轻量级的远程过程调用传送协议,其传递内容通过JSON为主。相较于一般的REST通过网址调用远程服务器,JSON-RPC直接在内容中定义了欲调用的函数名称,这也令开发者不会陷于该使用PUT或者PATCH的问题之中。本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于Socket、HTTP等诸多不同消息传输环境的同一进程中。其使用JSON作为数据格式。
JSON-RPC使用了JSON格式,那JSON是什么呢?
JSON是一种轻量级的数据交换语言。?使用JSON做数据交换的好处在于,一是兼容性高,二是可阅读性高,三是支持较多的数据格式,四是支持的语言较多。
江苏省成立区块链发展协会,加速推进区块链技术应用:金色财经消息,在江苏省委网信办和省民政厅的指导下,江苏省区块链发展协会在南京成立,并召开了第一次会员代表大会。省委网信办副主任王万军对省区块链发展协会第一次会员大会的顺利召开表示祝贺。他表示,2021年全省区块链领域专利授权417件、同比增长106.7%,工商注册区块链相关企业数量超过8500家;在中央网信办公布的8批国家区块链信息服务备案项目名单中,全省入选项目已达157个,居全国前列;苏州获批了全国首个区块链发展先导区,以南京、苏州、无锡为代表的“1+3+N”产业布局基本形成,全省区块链发展已开始步入快车道。在全省区块链发展的关键时刻,成立省区块链发展协会,是贯彻落实省委省政府有关决策部署和省区块链发展管理统筹协调机制会议有关精神的务实举措,也是推动全省区块链技术研发、产业发展和应用治理的重要载体平台。[2022/6/2 3:57:47]
第三,了解区块链相关的基础知识。
了解区块链,书籍资料不用,一本?精通比特币?足矣。这里就不赘述了。
第四,掌握一门开发语言。
如果你是一门经验丰富的程序员,此条预备知识可以忽略。如果你是一名非计算机科班出身的区块链技术爱好者,建议从Python入手。同时,多了解下JavaScript。
0x01怎么样开发
假设我们把预备知识都了解了,接下来我们需要阅读比特币和以太坊的RPC接口。
我们以比特币为例,根据OriginalBitcoinclient/APIcallslist文档我们可以得到RPC接口提供的函数列表。
以sendrawtransaction为例,这个函数列表提供了四列,分别表示函数名、传入参数、描述、是否需要解锁钱包。
我们把这个函数列表掌握之后,可以选择某一种语言,然后进行区块链钱包相关的开发。
当然,你还需要知道怎么样去部署一个比特币的完全节点和测试网络,这样就可以利用RPC进行接口调用,来和区块链网络进行交互。
0x02相关文档以及源码
这里列出主流项目相关的RPC接口以及开源钱包项目,以供读者参考。
2.1Bitcoin
2.1.1RPC
OriginalBitcoinclient/APIcallslist
APIreference(JSON-RPC)
JSONRPCAPI
2.1.2Wallet
BitcoinCore,官方出品
bitcoinj,比特币协议Java版
bither,简单安全的比特币钱包
Electrum,全平台轻钱包
bread,iOS钱包
Mycelium,Android钱包
Copay,同时支持Bitcoin和BitcoinCash
bitcoin-wallet,又一款Android钱包
DotNetWallet,.NET实现的钱包
Coinpunk,基于浏览器的钱包
btcwallet,Go实现的钱包
2.2Ethereum/ERC20
2.2.1RPC
JSONRPC
JSONRPCAPI
ManagementAPIs
ethjsonrpc
web3.py
2.2.2Wallet
go-ethereum,以太坊协议Go版
Mist,官方出品
Parity,支持Windows、Mac、PC的钱包
MetaMask
MyEtherWallet,基于浏览器的钱包
eth-lightwallet,轻量级JavasSript版本钱包
ethaddress.org,纸质版钱包生成器
ИeurealWallet,支持Windows、Mac、PC的钱包
2.3其他
2.3.1Zcash
Zcash,官方出品
2.3.2BitShares
BitShares,官方出品
2.3.3Sia
Sia,官方出品
2.3.4Nem
NanoWallet,官方出品
2.3.5Dash
Dash,官方出品
2.3.6Qtum
QtumCoreWallet,官方出品
2.3.7Litecoin
Litecoin,官方出品
2.3.8IOTA
IOTAWallet,官方出品
2.3.9Monero
Monero,官方出品
2.3.10GXS
GXSWalletformobile,官方出品
2.3.11EthereumClassic
EthereumClassicWallet,官方出品
0x03小结
本文讲解了开发钱包的预备知识,包括第一是什么是钱包,以及相关的分类,第二是RPC、JSON-RPC以及JSON,第三是了解区块链相关的基础知识,第四是掌握一门开发语言。接着浅谈了怎么样开发,最后列出了主流项目相关的RPC接口以及开源钱包项目。如果读者对钱包开发感兴趣,希望本文能够给读者一个指引。
0x04参考
维基百科(2006-07-21).远程过程调用.Retrievedfromhttps://zh.wikipedia.org/wiki/遠程過程調用.
维基百科(2017-04-19).JSON-RPC.Retrievedfromhttps://zh.wikipedia.org/wiki/JSON-RPC.
区块链钱包开发,钱包开发技术服务商
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。