智能合约 EOS 如何开发高效率的大型 dapp

liweidong · June 07, 2018 · Last by hanricky replied at June 14, 2018 · 8014 hits
先提一个帧同步的概念,做过实时战游戏的开发应该明白!前端只发送用户操作,后端只做转发,减少网路开销,和服务器的运算压力。
我们可以变相把这种技术应用到智能合约开发中来!

具体使用时,前端可以把用户的操作记录下来,满 100 个命令(或更多,取决于智能合约演算速度)时发送给智能合约演算。这种做法大大降低了网路开销,而增加了单次交易的计算时间。为什么要用 cpu 换网络开销呢? 因为目前 eos 网络不可优化,计算可优化,这也是我一直写 multi_index 文章的原因。作为一名技术能写出高效的代码,最基本的要掌握数据存储的原理。

群里大部分开发者都认为现在一秒可处理10004000次,只要有钱就可以使用更多的网络,
我只能告诉你公链是属于世界的,不是为你一个dapp服务的。
以目前TPS如果网络不拥堵,那只能说明用户不够多。今天看到BM发布每次交易可执行150毫秒,更加坚定了我的想法!

本来这篇文章要分析数据存储的,我自己还没有总结好,这篇算是预热吧!至少明白为什么非要研究数据存储的原理。我个人开发的 eos 卡牌游戏 [西游降妖志],开发过程中代码全程来源,可到我的 github 上下载,大家共同学习共同进步,欢迎聊我 qq 357879926

以下是群里聊天记录,我总结的不太好。这样更方便理解

xTree 09:51:55 这个操作是指 砍怪,嗑药这些么? 
xTree 09:52:23 满100再发送的话,会不会导致延时 
一路向北/db 09:52:38 对,就是用户的操作。 
外太空眼泪 09:53:01 100条只得是多个客户端吧 
一路向北/db 09:53:02 前端自己也要计算一遍。和玩单机游戏一样, 
一路向北/db 09:53:16 一个客户端。 
xTree 09:53:30 我一直有点疑惑,砍怪这些动作,我觉得没有必要走链啊 
一路向北/db 09:53:43 看来我写的真是不够明确,我再去修改一下 
一路向北/db 09:54:12 @xTree 目前我做的战斗过程不上链。处理不过来。 
一路向北/db 09:54:25 其他所有东西都上链。
 xTree 09:54:35 嗯那我明白了 
一路向北/db 09:54:39 [表情] 
xTree 09:55:12 涉及到资产方面的走链就可以了,例如 怪物掉落,金币啥的 
一路向北/db 09:55:56 你想一下,用户的什么操作不是操作资产。 
xTree 09:57:47 例如,我拳击怪物 10次 怪物才死掉。拳击10次这个过程就可以不上链。怪物倒下后,如果掉落了装备啥的,这个是资产,上链。 
一路向北/db 09:58:41 对战斗过程没上链,智能合约的执行是有时间限制的,在上面处理战斗不实现。 
xTree 09:59:24 嗯

嗯嗯 , 受教了.
那这样看来的话, 是不是装备掉落的随机方法也要在合约中实现? 比如掉落什么样的装备、在什么情况下会掉落?

4Floor has deleted
VincentShi 回复

是的,在合约里写好的。做简单点掉落的东西都一样

git 的地址能发下吗,学习下

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up