比特币的工作量机制是为了平衡多台机器竞争所导致的账本不一致问题
比特币系统每10分钟产生一个区块。
在进行工作量证明之前,会做的工作是什么呢?
1. 收集广播中还没有被记账的原始交易信息
2. 检查每个交易信息中付款地址有没有足够的余额
3. 验证交易是否有正确的签名
4. 把验证通过的交易信息进行打包记录
5. 添加一个奖励交易,给自己的地址增加12.5个比特币
什么是工作量证明:即密码学难题
为了增加记账的难度要求在hash值前面证据若干个0,在这里引入了随机数即:
Hash(上一个区块的hash, 账页信息,随机数). 第一个计算出符合要求的节点将记账成功。
节点是如何被发现的?
-
节点会记住它最近成功连接的网络节点,当重新启动后它可以迅速与先前的对等节点网络重新建立连接
-
节点会在失去已有链接时尝试发现新节点
-
当建立一个或多个连接后,节点将一条包含自身IP地址的消息发送给相邻节点。相邻节点再将此消息一次转发给他们各自的相邻节点,
从而保证节点信息被多个节点所接收、保证连接更稳定 -
新接入的节点可以向它的相邻节点发送获取地址getaddr消息,要求他们返回其已知对等节点的IP地址列表。节点可以找到需要连接到的对等节点
-
在节点启动时,可以给节点指定一个正活跃节点IP,如果没有客户端也维持一个列表,列出了长期稳定运行的节点。这样的节点也被成为种子节点,可以通过种子节点来快速发现网络中的其他节点。