比特帝国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

比特帝国 首页 EOS EOS资讯 查看内容

eos.io开发更新

2018-1-16 16:11| 发布者: admin| 查看: 2257| 评论: 0|原作者: 译者:peter


声明

译者:peter

原文地址:

https://steemit.com/eosio/@dan/eos-io-development-update


未经允许,在非用于商业和教育用途的前提下 (即,除了收取费用或商业目的),如果注明原始出处并使用声明的版权,任何人可以使用、复制或发布本文内的任何内容。


我们最近很忙,忙着把EOS.IO做成目前市场上最好的智能合约平台。

我们的团队不断拓展区块链的边界,希望能在开发和性能中间取得最好的平衡。


在我们上一次的更新中,我们稍微描述了我们遇到的挑战,它们包括:

•   支持苹果的touch ID/安全enclave

•   延迟(异步)交易的错误处理

•   并行执行

 

从上次更新之后,我们实现了我们讨论的内容的多数部分。这些内容包括在github上的eos-noon分支中,这样我们就能维护一个稳定的master分支,这样大家能用来做测试网络的工作。下面是我们最近的工作的一些细节。


延迟交易

延迟交易可以让不同的shard进行通信,只需要把同一时刻需要的数据库锁的数量最小化就行。同时我们还实现了安排一笔交易在未来进行分发的能力,以及取消安排好的交易的能力。


对交易进行安排(绑定了免费交易)的能力是的EOS.IO成为第一个“图灵完备的智能合约平台”。这意味着它将可以创建一个智能合约,该智能合约会在持续进行的基础上,每秒多次自动地执行一个操作,而不需要外部输入。只要该合约拥有足够的计算带宽,该合约就能永远执行下去。其它的智能合约平台都需要外部输入才能运行,因为它们受到手续费的限制,也不能安排一笔交易在未来的时间点执行。


这个功能限制已经完成了,将来会在EOS Dawn 3.0 测试网络发布时提供,我们希望能在2018年第一季度结束时发布EOS Dawn 3.0 测试网络。


授权延迟

时间对于安全来说是一项关键因素。我们正在升级EOS.IO的授权结构,以让用户能对每个授权级别配置延迟。比如,在社交网络上发文可以是实时的,而转移资金则需要24小时甚至更长时间的延迟。当一个用户使用配置的延迟来执行一项操作的时候,这笔交易将会被打包,延迟一段时间,同时可以在该延迟时间结束前取消。这就能让用户使用“恢复被黑的账号”流程在造成伤害之前重新获得对他的账号的控制权。


被黑账号恢复

每个账号都有三个特殊的权限:owner,active和recovery。owner权限应该使用多重签名进行配置,它能实时修改其它所有的权限。更新owner权限应该需要30天的延迟。理想情况下,owner权限应该需要一个恢复(recovery)伙伴的active权限。要想黑掉owner权限,需要同时获得这个账号的用户和他的恢复(recovery)伙伴的同意。如果恢复伙伴的active 私钥被黑了,那么恢复伙伴可以使用他的owner权限进行恢复。在实际情况中,这会在所有用户中形成一个信任网络,要想黑掉账号,必须一次性黑掉所有人。


如果恢复伙伴不配合,那么active权限可以单方面的升级owner权限(这需要30天的延迟)。这意味着你的账号不会被别人支配。


只有一种情况下,你的账号会被黑:你丢失了你的active 私钥而黑客拿到了你的active 私钥。可以通过充足的备份来减少这种情况发生的概率。


丢失密码恢复

人们会忘记密码,电脑会宕机,这些事情都是会发生的。墨菲定律告诉我们如果一件事可能会出错,那么它就一定会出错,即使是最完美的计划和加密学专家也不例外。使用EOS.IO你也不能指望运气。每个账号都能指定几个恢复伙伴 (recovery partners),这些恢复伙伴能更新active验证权限(有七天的延迟),不过这只有在你的账号已经超过30天处于不活跃状态(inactive)的时候才能进行。只要你指定几个你信任的朋友和家人作为你的恢复伙伴,如果你丢失了你的秘钥,他们就能把账号归还给你,这样你就不需要担心会丢失账号了。


每个账号都有宪法和法律上的义务来保存你账号上的财产权。如果恢复伙伴滥用他们的地位,想趁你在30天的昏迷期内夺走你账号的控制权,你依然可以对他们提起诉讼来夺回账号。因为你指定的是你熟悉的人来作你的恢复伙伴,所以,很容易就能知道应当由谁为此负责。


通过把社交网络,时间延迟,加密学联合起来构建一个能保护每个人的财产权的信任网络,这就能使丢失密码恢复成为可能。


更新资源使用算法

EOS黎明2.0实现了一些基础资源的限制,但是我们还有工作要做。过去的两个月我们完整的修改了我们的对带宽,算力,投票和存储的资源比率限制策略。


分离staking

我们添加的最主要的改变就是为不同的权利开发了不同的staking 池,由此识别带宽,内存和控制的不同供应/需求价格的经济现实。比如说,我们不希望人们分配他们不想使用的内存,这样他们就可以声明(claim)他们的投票权或带宽。我们还想对未staking的带宽施加一个三天的延迟,而未staking的未使用的存储没有延迟,未staking的投票有六个月的延迟。带宽和投票可以被代理,而存储不能。正如你所见,我们需要满足不同的需求。


带宽代理

任何账号都能把带宽代理给任何其他的账号,只要把代币发送到一个带宽staking账号。为了保持“对称”,一个用户可以把带宽代理给他们自己,就像把带宽代理给其他人一样。用户可以在3天的延迟后的任意时间点拿回他们的代币。

对一笔交易进行验证的所有账号,都要为带宽付费,在不活跃的三天后,使用(usage)将会线性衰减至0。


投票

现在我们有了带宽,内存的分离staking池,我们就能为那些希望在平台上行驶政治控制权的人提供更好的利益捆绑。为了能影响区块生产者的选择和协议的升级,用户必须在一份合约内,对代币进行stake,合约规定了一个六个月的线性取款期。如果他们的行为对平台有负面的影响,这将导致他们蒙受资本的损失。


内存

RAM很昂贵,而且对一台计算机能支持的硬件上是有限的。如果我们成比例的把所有1TB的RAM分配给1000亿美金,那么每个字节的存储的成本将超过10美金。这就会把平台变成无法使用的,因为这样99.99%的代币持有者都不需RAM,要解决这个问题,我们可以从班科借鉴一个想法,就是把内存当作一个有1%保留的智能货币。这种情况下,保留的是1TB的真实RAM,然后班科(Bancor)算法以动态价格把这个真实RAM卖掉,这样RAM就永远不会用完。当有人想保留RAM时,他们把代币发送到内存合约,然后基于一个流动代币和可用RAM的功能被保留。


区块链会对一个账号的真实使用情况进行追踪,如果它想消耗比之前分配的更多的RAM ,交易就会被拒绝。当一个账号使用完了分配的内容,不再需要RAM了,它就可以请求释放它的分配,然后就能收回它被锁定的代币。


低价的时候保留RAM,高价的时候释放掉,这样是不能转移或代理保留的存储的,也无法从资本增值中获利。这对于防止存储成为一种投机工具(这会把价格抬高到远离人们真实的需要)来说是十分重要的。


每个用户每天的分配只能增加一次,他们为所有分配支付的价格将基于分配后的可用RAM.这意味着一次分配很多的RAM的价格会很昂贵(由于市场滑动),最有效的策略是长期购买,个人在未来少量使用。


这个策略将让那些想保留大量RAM的人付出平均的成本,随着时间的推移,所有的竞争者的价格都会不相上下。


对内存使用收费

我们已经知道怎么把应用变的可用的了,很快我们就意识到一件事,很多情况下,如果合约拥有者能让用户自带存储,那合约拥有者将好过得多。不把成本摊到用户头上,这会让并行计算变的困难,同时也强迫合约开发者构建他们自己的记账模型。


每个合约都能选择要么对授权交易的用户的存储收费,要么对合约自己收费。多数情况下,每个用户保存他们自己的“账号信息”要比一个服务合约在内部存储要好得多。这给予了开发者最大的灵活性来设计用户体验。

这项修改还在进行中,将会包含在EOS黎明3.0中。


显式交易锁

我们把“读/写范围(scope)“改成了”读/写锁“,这样来传递它们的逻辑行为,同时增加锁的粒度,从而把并行执行的机会最大化。


测试EOS黎明2.0的开发者十分熟悉声明每笔交易需要的“范围”的需求。这使得交易在面对一些动态的环境时,难以进行组织,交易也十分脆弱。我们对这些环境进行了调查,决定区块生产者可以决定需要哪些读/写锁。这样就把指定每笔交易所需要的锁的需求消除了,这能节省空间,同时便于开发者开发。

这项修改已经在eos-noon分支中完成了。


核心功能的动态更新

通常对区块链的升级需要进行硬分叉。在有新功能要添加,要升级现有功能,或有bug需要修复时可以随时进行。硬分叉对整个网络来说是破坏性的,因此,尽可能通过WASM把区块链的行为定义为动态的。


我们正在把核心功能从原始c++迁移到WASM合约上。这些功能包括:

•   核心代币(EOS)

•   带宽,内存,投票的staking

•   生产者投票

•   多重签名合约

•   社区利益合约/worker提案分配

 

不直接用WASM实现的内容包括:

•   账号创建

•   带宽/RAM使用度量

•   权限更新

 

调度/延迟交易

有了这项修改,区块生产者将能不进行硬分叉就可以修复bug,升级协议。这样我们就能自食其力,保证我们的智能合约开发环境足够健壮,以实现我们想开发的每个合约。


合并代币标准

为了支持合约间的互操作,我们一直在开发一种合约的代币标准。这个标准将和ERC-20代币背

12下一页
比特帝国区块链交易所

最新评论

返回顶部