• 以太坊代币与账户交易


    以太的单位

    以太币的最小单位是Wei。Wei是一个非常小的单位,1Ether= 1018 Wei,和无限可分也差不了多少了。除了基本单位Wei,为了使用方便还有其他的单位,他们的关系如下:

    •  Kwei = 103  Wei
    •  Mwei = 106  Wei
    •  Gwei = 109  Wei
    •  Microether = 1012  Wei
    •  Milliether = 1015  Wei
    •  Ether / SCC = 1018 Wei

    我们一般记住wei , Gwei=109wei,Ether = 1018wei即可。

    代币交易过程

    交易(Transaction)的过程原理

    1.交易发起

    指定目标地址和交易金额,以及需要的gas price/gas limit等信息,构建一笔交易并生成Transaction实例。创建的交易json字段定义:

     

    根据这个json字段可生成一个Transaction实例:

     

    Transaction 实例结构

    txdata             // txdata字段

    From            // 缓存数据:发送方地址

    Hash             // 缓存数据:交易Hash

    Size             // 缓存数据:交易的大小

    其中txdata这个数据结构我们需要用来进行数字签名:

      

    2.交易签名

    使用账户私钥对交易进行签名。

    当前代币所有者先通过Keccak-256算法计算交易数据的hash值,然后结合账户的私钥,通过ECDSA-secp256k1,也就是椭圆曲线数字签名算法生成签名数据(RSV)并将这个签名附加在transaction实例的末尾,制作成交易单。

     

    我们发现,txdata只有接收方的地址(Recipient)而没有发送方的地址,R,S,V的作用就是我们可以使用ECDSA推导获得from:

    经过以上交易实例的构造,我们就可以将实例提交到交易池txpool了。

    3.提交交易

    签名后的交易会先提交到本地SCC链节点,本地节点先对交易签名进行验证后,把transaction实例的这笔交易加入到交易缓冲池txpool中。提交交易的目标是先把交易放入交易池的队列queue中记录在案,然后再从queue中选一部分放入pending中进行处理。如果发现txpool满了,则依据price中的排序,剔除低油价的交易。

    4.节点确认

    一个或者多个节点对txpool中的交易的信息验证确认。

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

    矿工节点选择好要打包的交易之后,就开始了PoW(Proof of Work)挖矿过程,最先发现新的区块的矿工能够将交易打包至区块,并且获取到相应的奖励。节点会确认这个区块所包含的交易是否有效,确认没被重复花费且具有效数位签章后,接受该区块,此时区块才正式接上区块链,无法再窜改资料。

    5.广播交易

    把交易信息广播给其他结点。

    新的区块已经产生,所有的节点都需要对区块进行同步,你的交易会随着区块的同步被同步至所有节点上。所有节点一旦接受该区块后,先前没算完的区块会失效,各节点会重新建立一个区块。每个区块的出块时间大约在10s,随着全网算力的不断变化,每个区块的产生时间会随算力增强而缩短,随算力减弱而延长。

     

     

     

  • 相关阅读:
    oracel与mysql 查询从创建时间到更新时间的3天内的数据
    微信创建菜单
    利用XStream实现实体类与xml的转换
    play freamwork 框架中 调用线程保存数据
    play freamwork 框架中 设置文件大小
    将javabean转为map类型,然后返回一个map类型的值
    Base64的加密,解密
    MD5加密
    实体类与CDATA类型的xml的转换的工具类
    解决oracle数据库中 ORA-01843: 无效的月份问题
  • 原文地址:https://www.cnblogs.com/kumata/p/10865420.html
Copyright © 2020-2023  润新知