CryptoKitties疯狂暴露了DAPP的致命问题

近期,以太坊出现了严重拥堵的事件,起因是一块游戏。

 

CryptoKitties1128日登陆以太坊区块链,是一款虚拟养猫游戏,玩家可以买卖并繁殖不同品种的电子宠物小猫。这块游戏其实是一个基于以太坊的DAPP,上线后迅速在加密货币爱好者圈内刮起一阵旋风。

 

0?wx_fmt=jpeg

根据以太坊区块链的数据统计,在过去的1500个区块里,占据了总计超过16%的比例交易。

 

CryptoKitties在展现了DAPP的巨大潜力的同时,也暴露了DAPP的一个致命问题。

 

DAPP是基于智能合约的一种应用程序,运行在区块链的分布式网络上,运行数据也存储在网络中,通过网络节点的去中心化操作。

 

但是我们知道,任何一款应用都有一定的应用范围,不可能覆盖所有的用户。如果DAPP所有的数据运行和保存在区块链上,势必造成网络的堵塞,这对为其他用户来说是不是一种不公平?

 

区块链的底层数据结构,是通过数据的冗余来保证安全,如果DAPP的数据也在区块链网络上冗余,那么多大的区块链扩容都不能满足未来的需要。区块链就会像一场连环相撞的高速公路车祸现场一样,在去中心化的管理模式下,只会越来越堵,更多无辜的车辆也过不去。

 

 

什么才是DAPP未来最好的运行模式呢?

 

我们从日常生活中的获得启发。我们常说的“去中心化”模式,其实可以分为“全局性的去中心化”和“局部性的去中心化”。举个例子说,全国性的法律是一种全局性的规则,可以在整个区块链上执行和存储。而地方性的文件是一种局部性的规则,它们在区块链的其中某个部分执行和存储就行。这样就解决了公平和效率的关系。

 

回到最初的那个游戏上。CryptoKitties作为一种DAPP游戏,它的玩家应该自成一个虚拟的去中心化网络,游戏中的所有交易数据是限定在区块链的某一部分的,只有当玩家离开这个游戏时,其对应的交易数据才会影响到整个区块链网络。这样给其他非游戏玩家提供一个干净、通畅的交易空间。

 

这更符合去中心化理论的本质。




北斗链起到上市进程,倒计时20天...


本地部署指南 部署合约: 一共部署了3个合约, 其中3个收款地址被砍掉(改成了部署者的地址), p3d 也砍掉了 3个合约 我偷懒没有把合约地址写死, 用的是后续的 set 方法, 所以如果 truffle migrate 最后那段报错了, 可能没有 set 成功, 需要用其他方式调用( truffle console, 或者 remix 等) 合约部署完, 如无报错, 直接复制走 FoMo3Dlong 的地址就行了 npm install ganache-cli -g ganache-cli -l 471238800 -g 1 # 开启 testrpc 同时设定 gasLimit 和 gasPrice truffle compile truffle migrate --reset # 执行后, 复制 FoMo3Dlong: 后跟的地址 #直接输出最终合约地址, 将不会打印编译过程 truffle migrate --reset | grep 'FoMo3Dlong: 0x' | awk '{ print $2 }' 推荐做法 truffle migrate --reset > migrate.log cat migrate.log # 查看有无错误, 如合约均部署成功,但最后报错, 可能有几个赋值方法没有执行(我部署到 kovan 时就发生了这事,可以参考 migrations/2_deploy_fomo3d.js逻辑手动执行) cat migrate.log | grep 'FoMo3Dlong: 0x' | awk '{ print $2 }' 部署前端: 前端没有太多需要改的地方, 若使用英文版, 可参考下面命令行修改地址方式 若选择 bundle-cn.js 这个中文版, 则自己找到要修改的地方, 手动修改也行的 顺便说下 cn 里面还是 kovan测试网络的配置, 如需使用可把 bundle.js 里面的本地配置拷贝下 cd src/js sed -i "" 's/{{address}}/0x00/g' bundle.js # 非 mac 去除 -i 后的 "" cd ../../ npm install & npm run start 游戏激活(不激活就处于 ICO 中? 不懂...) 刚想到一个不一定靠谱的简单方式, 把 migrations 下那个 js 里面加一个 activate 的方法调用 npm install remix-ide -g # 安装个本地的 remix-ide remix-ide #注意此时处于项目根目录 OK, 浏览器访问 remix-ide, 点击左上角第6个图标( Connect to localhost ), 弹框继续 connect 左边多出 localhost, 点击 contracts 下的 FoMo3Dlong.sol 文件, ctrl + s , 触发编译 , 下一步 点击右边的上边的 Run, 选择 web3 provider, 如端口不变, 一路 next, ok, 往下看, 有个选择 合约的 select, 选中 FoMo3Dlong, 然后在 输入框中输入 migrate 得到的合约地址, 然后点击 At Address 最后点下 合约的 activate 方法 合约源码浅度分析 Fomo3D 合约源码分析 主要是对源码所有合约整理归类, 解释下合约都有啥作用, 希望对刚接触 fomo3d, 想学习 fomo3d 的有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值