Burstcoin 交易处理的工作原理
每个 Burstcoin 钱包在连接到网络时充当支持事务处理的节点。
Burstcoin 交易(如从 A 方到乙方的付款)通过在 Burstcoin 钱包中输入交易详细信息启动。 预期事务作为包含事务 ID 和事务详细信息的事务对象广播到网络。 节点(联机且完全同步的 Burstcoin 钱包)评估交易的详细信息,以确定它是否有效。
检查事务详细信息输入的所有值。
- 是否指定了所有必填详细信息?
- 指定的交易费用是否大于或等于最低交易费用?
- 交易截止时间是否至少在未来一分钟?
如果没有异常,事务处理将继续如下:
- 使用提供的秘密密码计算发送帐户的公钥。
- 发送账户的余额是从区块链的扫描中检索的。
以下项目是与发送帐户余额相关的支票:
- 发送帐户的余额是否大于零?
- 发送帐户的确认余额是否大于或等于交易金额加上交易费用?
- 发送帐户的确认余额是否足以支付交易金额加上当前交易的交易费用以及来自同一账户但尚未确认的任何其他交易?
如果发送帐户有足够的余额,则继续处理如下:
- 将创建一个事务对象,其中包含事务的所有详细信息。 为交易记录分配一个交易记录编号。
- 使用发送帐户的私钥对交易记录进行签名。
- 加密的事务数据放置在指示网络对等方处理事务的消息中。
- 事务将广播给所有网络对等方。
注意:如果任何详细信息检查失败,网络将响应错误代码和消息。
有效交易记录将添加到”未确认的交易存储”,即”mempool”内的保留区域。 生成新块时,这些事务由块生成器确定优先级,并添加尽可能多的事务,但受每个块 (255) 和最大字节数的限制。
先包括分阶段事务,根据块链中接受的块高度选择。 如果在同一块高度接受两个分段事务,则首先选择索引编号较低的事务。 在包含所有分期交易记录后,将包含常规未确认交易记录,根据指定费用进行选择,如果多个交易记录具有相同的指定费用,则按时间戳进行选择。 注意: 块最终确定时,选择顺序未保留。 事务将仅按时间戳排序。 新块将添加到构成 Burstcoin 的不可变分布式共享分类帐的块链中。 未包括的任何交易都将保留在保留区中,等待包含在未来区块中。
当事务首次包含在块中时,它们被视为具有一个确认。 每个后续块都会向事务添加另一个确认。 Burstcoin 交易在 10 次确认后被视为可靠。 在出现问题时,网络可以”重新组织”多达 720 个块,因此具有 721 个确认的事务被视为不可逆的。 具有 1,440 份确认函的交易被视为永久交易。
发送事务的字节顺序如下:
长度(位) | 姓名 | 数据定义 | 累计总计(字节) |
---|---|---|---|
8 | 类型 | 交易类型(付款、资产交换、市场等) | 1 |
4 | TX 版本 | 0 关于成因,1 当前,添加附件和附属物 | 1.5 |
4 | 亚 | 交易子类型(例如:使用资产类型创建投标单) | 2 |
32 | 时间 戳 | 当前时间戳,其中纪元是成因块 | 6 |
16 | 最后 期限 | 要处理事务的截止时间(以分钟数为) | 8 |
256 | 发件人公钥 | 用于发送事务的帐户的 256 位公钥 | 40 |
64 | 收件人/创世 | 交易的接收者,无收件人的交易的成因,例如:资产 | 48 |
64 | 数量 NQT | 发送到收件人的金额,在普朗克(1 Burstcoin = 100,000,000 普朗克) | 56 |
64 | 费用 NQT | 费用金额,以普朗克表示 | 64 |
256 | 引用的事务完全哈希 | 用于引用事务的完全哈希,通常留空 | 96 |
512 | 签名 | 此字段为零的此事务的签名,签名必须由先前声明的公钥的私钥生成 | 160 |
32 | 标志 | 位置 1:任意消息 2:加密消息 3:公钥公告 4:加密消息到自己 | 164 |
32 | EC 块高度 | 经济聚类参考块的块高度 | 168 |
64 | EC 块 ID | 上面引用的块的 ID | 76 |