区块链轻钱包技术介绍

以太坊HD钱包代码实现案例(创建钱包,恢复钱包):https://blog.csdn.net/qq_16137795/article/details/83474645

一:Web3.js

简介:web3.js是一个库集合,允许您使用HTTP或IPC连接与本地或远程以太它节点进行交互。为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3。对象。底层实现上,它通过RPC 调用与本地节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。

1、连接以太坊节点(私链、测试链、公链、infura节点)

2、查询区块高度、用户账户余额、当前的gas价格、交易数据

3、发送签名交易

等等.....

二:infura节点

简介:infura的目标是为全世界提供安全,稳定,容错,并且可扩展的以太坊以及IPFS节点。另外一个目标则是做以太坊社区中负责的一员,为以太坊网络的发展和稳定做贡献。Infura 提供公开的 Ethereum 主网和测试网络节点,本地安装geth的方法需要花比较多的时间和空间来同步区块,利用infura可以简单很多,infura提供公开以太坊和测试节点,可以利用infura提供的api访问以太坊以及IPFS。

三:BIP39生成助记词

扫描二维码关注公众号,回复: 3789674 查看本文章

简介:

BIP39标准就是为了解决助记词的需求,通过随机生成12~24个容易记住的单词,单词序列通过PBKDF2与HMAC- SHA512函数创建出随机种子作为BIP32的种子。

生成步骤:

1.生成一个长度为 128~256 位 (bits) 的随机序列(熵);

2.取熵哈希后的前 n 位作为校验和 (n= 熵长度/32),就可以创造一个随机序列的校验和;

3.将校验和添加在随机序列(熵)的末尾;

4.将序列化分为包含11位的不同部分;

5.将每个包含11位不分的值与一个已经预先定义2048个单词的字典作对应;

6.生成的有顺序的单词组就是助记词。

四:ethers.js

简介:这个库(由ethers.io制作并使用)旨在使编写基于客户端JavaScript的钱包变得更加容易,并始终将私钥保存在所有者的计算机上。

1、创建钱包:生成私钥(privateKey)、助记词、KeyStore、钱包地址等。

2、恢复钱包:可通过privateKey、助记词、KeyStore找回钱包。

3、签名交易

4、广播交易

等等.....

轻钱包转账交易流程:

转账:

1、构建交易数据:

● nonce:交易发送者的交易序列号

● gasPrice:gas价格

● gasLimit:消耗的gas上限

● to:交易接收者的地址

● value:要发送的以太币(以wei为单位)

● data:可选的数据域

2、对交易进行签名:

● 需要使用交易发送者账号的私钥对交易进行签名,本地对交易进行验证。

3、交易广播至区块链:

● 签名后的交易会首先提交至infura以太坊节点,infura节点会首先对该笔交易进行验证,它会验证签名是否有效。

验证有效后把交易广播至区块链网络之后,infura节点会将交易广播至整个网络,在广播之后会返回一个交易hash 值,你可以通过该hash值查看和追踪该交易的状态和相关信息。几乎以太坊网络上的所有节点都会收到这笔交易。

4、矿工节点接收到交易:

● 生成的交易需要被区块链网络中的矿工打包到区块,才能写入到区块链中。矿工会有一个待处理的交易列表,其中的交易是按交易的gasPrice进行排序的,交易的gasPrice越高,处理的优先级就越高。如果交易的gasPrice过低,有可能一直得不到矿工的处理,从而被忽略

5、矿工将交易打包至区块并广播至网络

● 矿工会取若干交易然后打包至一个区块中,一个区块中能够包含多少条交易是和区块的gasLimit有关的,所有交易的gasLimit总和不能超过区块的gasLimit。当矿工选择好要打包的交易之后,就开始了PoW(Proof of Work)挖矿过程,最先发现新的区块的矿工能够将交易打包至区块,并且获取到相应的奖励。

其它节点同步新的区块数据

由于新的区块已经产生,所有的节点都需要对区块进行同步,你的交易会随着区块的同步被同步至所有节点上。

至此,一笔交易的生命周期彻底结束,它被永远的写入到了区块链中。

以太坊HD钱包代码实现案例(创建钱包,恢复钱包):https://blog.csdn.net/qq_16137795/article/details/83474645

学如逆水行舟,不进则退。心似平原跑马,易放难收。全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。 也叫全端工程师(同时具备前端和后台能力),英文Full Stack engineer。【人工智能】【区块链】【系统/网络/运维】【云计算/大数据】【数据库】【移动开发】【后端开发】【游戏开发】【UI设计】【微服务】【爬虫】【Java】【Go】【C++】【PHP】【Python】【Android/IOS】【HTML/CSS】【JavaScript】【Node】。欢迎各位大神萌新一起专研分享技术。。。

欢迎加入 IT 全栈工程师交流群:593674370

猜你喜欢

转载自blog.csdn.net/qq_16137795/article/details/82744042