TX状态变化: 钱包发起交易–> 节点上返回未签名的交易–> 钱包签名后发回—> 节点做hash,转化为未确认的交易
节点收到未确认交易(已签名hash等)
进行本地检查,放入池中
从池子选出一部分未确认交易,来创建区块
池子挑选策略:很多。最简单先入先出
防止多重支付:一个utxo只能在一次交易中作为输入。 不能说多次转账都使用同一个utxo
用户发起交易后,网络所有节点都会收到请求,但并不是所有节点都有能力记录交易。如POW工作量证明(挖矿),产生公认唯一的节点来记录。
节点通过while循环进行测试nouce进行挖矿。
每个节点是对等的(除了角色上分明)
httpServer 提供 对外(对客户)进行查询、交易操作。
p2p负责节点之间的对等通信。p2p每个都有 服务端和客户端角色,发起请求一侧的为服务角色,可同时作为服务、客户响应。
余额只是 未经消费的输出。 所以只需找到adress的utxout,金额加起来即可
Nodejs是基于openssl实现的。openssl本身是同步的。Nodejs认为IO是异步的,而CPU密集可以同步也可以异步。 node:crypto 提供了同步和异步两种方式
webcrypto为浏览器而生,浏览器通常涉及大量异步并发操作,所以本身设计为异步操作
同步优点在于确定性,异步优点在于可扩展非阻塞。
web crypto api 不支持spec256k1曲线参数。