关灯 特大 直达底部
亲,双击屏幕即可自动滚动
正文 第414章 白板!


老周站在他后面,盯着白板右半边看。



他的呼吸声变了,从刚才疲惫的均匀变成了不均匀的,像是在憋气。



"本地账本……"他低声说。



林彻没说话。



"不用镜像同步,"老周的声音开始快了,"不是维护一份央行账本的副本,是在逻辑层本地建一个独立的账本。



本地账本只记录可编程逻辑相关的状态,不记录完整的余额信息。



规则引擎执行的时候只查本地账本,不查央行账本。



执行完了再通过异步回调把结果告诉央行,央行账本做最终确认。"



他停了一下。



"310毫秒的镜像同步没了。"



方远从椅子上站起来了。



"但是一致性呢?"方远说,"本地账本和央行账本之间如果不同步,双花问题怎么解决?"



老周没有看方远,他还在看白板。



"不需要实时一致,"老周说,语速越来越快,"最终一致就够了,本地账本记录的是'这笔钱正在被一个规则占用',不是'这笔钱已经被扣了',占用状态锁定这笔钱,其他交易看到占用状态就排队,规则执行完了,回调通知央行,央行做最终扣款,如果回调失败了,占用状态自动释放,钱回到可用状态。"



"最终一致……"方远在脑子里跑了一遍逻辑。



"双花问题被占用锁解决了,"老周说,"不需要镜像同步,不需要央行实时确认,本地账本的占用锁就是防双花的机制,310毫秒没了,195毫秒的回调通信变成了后置环节,不在主链路上,不影响用户体感延迟。"



他转过身看着林彻。



"18加22加65,105毫秒。"



105毫秒。



远低于500毫秒的要求。



甚至比deo里的37毫秒只高了不到70毫秒,因为加上了清算确认的65毫秒。



但这65毫秒是后置的。



用户感知到的延迟只有规则编译加规则执行,40毫秒。



清算确认在后台异步完成,用户付完钱走了,后台再慢慢对账。



"你怎么想到的?"老周问。



林彻没回答。



他把笔放回笔槽里。



白板右半边的图很简单,两个方框,一条实线,一条虚线,三个箭头。



跟左半边两周的迭代痕迹比起来,干净得有点不真实。



这个思路不是先知能力给他的。



上辈子没有这个东西,没有可编程货币引擎,没有异步架构,没有本地账本加最终一致性的方案。



这些都是这辈子的产物。



他能想到这个思路,不是因为他"知道"答案,是因为他看过太多分布式系统的架构文章,读过太多关于区块链共识机制和支付系统设计的论文,这些东西在他脑子里沉淀了很久,在某个凌晨一点的瞬间被眼前的问题激活了。



不是先知,是积累。



老周看了他一眼,那个问题没有再问第二遍。



"今晚试。"老周说。



他转身走向方远的工位,方远已经坐下了,手放在键盘上,等着老周说开始。



"重写本地账本模块,"老周说,"从零写,占用锁机制,最终一致性回调,方远你写核心逻辑,小李你写锁管理,我

本章未完,点击下一页继续阅读

(2/3)
  • 加入收藏
  • 友情链接