EOSIO Dawn 4.0 发布
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
关于Dawn 4.0 RAM分配的反馈
一些社区成员表示担心,在其他任何人发现之前,有些人会通过购买便宜的内存来获得不合理的利润。为了缓解这种情况,我们建议那些人用一个非常有限的RAM供应来启动一个节点,然后在头几个月内逐步增加内存。如果RAM的供应量从32GB开始,然后在几个月内增长到1TB,那么RAM的价格可能会随着时间的推移而迅速下降到最初定价的3%。只有那些真正需要RAM或者在出价时考虑未来RAM供应的人才会购买初始RAM。无论哪种方式,没有人会获得“便宜”的RAM或“免费利润”。
测试网络状态
我们在欧洲,亚洲和美国拥有节点的内部测试网络一直运行良好,没有出现重大问题。
主观CPU资源使用率
在过去的几个月中,我们一直在试验客观的CPU计费。目标计费尝试以确定性方式计算交易使用的多个CPU指令。这具有很好的特性,可以确保对交易消耗的资源达成完全和明确的共识。这也是许多其他智能合约平台所使用的方法。
当我们在一年前引入EOSIO时,我们提出了使用主观尽力而为的调度。在这种模式下,每个区块生产者将测量执行交易所花费的挂钟时间并相应地向用户收费。为了保持对使用情况的一致性,生产者将向交易报告其计费的微秒数。
虽然客观计费对于消除账单纠纷和简化共识的能力非常好,但它有几个缺点,导致我们最终决定主观计费:
客观CPU度量通过引入额外的簿记降低了性能。
客观CPU度量在任何时候行为的实际成本与其目标近似之间存在不一致时引入攻击和拒绝服务向量。
客观CPU度量难以维护,升级并引入优化。
主观计费有其自身的挑战,特别是在共识系统中。幸运的是,我们找到了创新的解决方案,使其具有实用性其中一些挑战包括:
信任生产者准确报告使用情况。
解决生产者之间的意见分歧(由硬件/软件/负载引起)。
处理恶意生产者。
通过授权证明,预计区块生产商将成为具有合同义务和恶意行为法律后果的公共实体。进一步预计,所有21个活跃的生产者都会得到选择它们的社区的高度认可。
基于此,我们可以将一个信任元素放在所有这些元素上,充当CPU运行时间,而不是说事务运行需要多长时间。这意味着在正常运行条件下,我们可以相信所报告的运行时间在所有生产者的平均运行时间的合理误差范围内。
这种方法的批评者可能会指出,一个单一的恶意生产者可以构建一个无限循环的块,并报告它没有时间。为了防止这种情况,所有节点要为所有块放置几秒运行时间的上限;然而,即使有上限,也可能会导致网络中断。一个聪明的恶意生产者可能会构建一个块,使得50%的节点接受它并且50%拒绝它并因此分叉网络。
我们的团队已经分析了这些攻击媒介,并认识到运行时间非常长的块与网络延迟或中断很长时间没有区别。面对其他主观事物,在实际网络分叉中强健的任何一致性算法也应该是稳健的。由于带有BFT的DPOS可以承受网络分叉(例如,如果美国和中国暂时与更广泛的互联网断开连接),它可以在存在恶意的制造商的情况下生存。
有几种方法可以阻止生产商减少网络分叉的可能性,无论原因是大西洋的光缆断开还是恶意制造商,都有相同的方法。
维护多个连接
采用这种方法,如果跨大西洋的连接被切断,那么制作者会将数据包路由到太平洋。说到验证块,生产者应该有多个验证节点,并且从来没有两个节点试图验证同一个块。在最极端的情况下,每个生产者可以有专门的节点来处理来自每个同伴生产者的传入块。如果一个生产者用无限循环堵塞他们的验证通道,那么来自其他生产者的块仍然可以通过他们的独立和冗余通道。一旦不可逆块号移过坏块的块号(具有无限循环的块号),该节点可以强制块处理终止并退出。这将需要2/3以上的生产商才能成为拜占庭不断推进的共识.
维修或路线周围的损害
在切断其中一个光纤时,并不总是可以准备好接管多个光纤。在这种情况下,派遣一个团队来修复损坏的电缆并恢复连接。这可能需要更长时间,但最终连接恢复并且网络恢复达成共识,只不过有点停机时间。当涉及到恶劣的生产者造成恶作剧时,其他生产者可以简单地更新他们的配置,将坏的生产者列入黑名单,然后网络将恢复正常运行。将恶意生产者列入黑名单的过程甚至可以在他们观察到运行时间不合理的块时自动执行。最坏的情况是一个坏的BP在禁区边缘制作一个区块,这样只会导致一半BP将他列入黑名单。在这种情况下,最后的不可逆转的块将停止前进,而生产者决定哪个未完成的分支.
在所有上述情况下,依靠最后一个不可逆转块来确定终结点的用户是免于双重支出攻击的,并且网络经历的“停机时间”可能小于他们经历的典型“停机时间”公司或ISP。
我们认为,DPOS的治理流程和激励措施使得导致短期停机的恶意行为的概率低于导致所有区块链平台停机的互联网连接问题的可能性。至少在DPOS用户可以安然无知地在重新连接之后解开的少数连接。通过工作链的证明,网络拆分可能会导致对只依靠固定数量确认的人进行双重支出攻击。
系统合约更新
'eosio.system’合约是提供生产者注册,投票,放样和资源分配的实施方式。我们的团队一直致力于提供社区在创建链条时可能会选择采用的参考实施。在此版本中,系统合同已更新为包含以下内容:
没有人可以解锁,直到150,000,000.0000 TOKENS投票给至少一个制作人或代理人。
如果一个链希望将10%的TOKENS分配给Block.one,它将每年以1%的速率进行速率限制。
黑客帐户恢复和丢失的密码恢复
我们的团队创建了一种新方法来处理被黑客户帐户恢复和丢失的密码恢复,使几乎所有事情都可以在Web Assembly中实现。我们添加了一个新的内部API,它返回上次权限级别由帐户授权的情况。通过这些信息,智能合约现在可以实施执行30天不活动所需的逻辑,然后在完成Web Assembly的重设完全丢失密码之前提前7天通知。
我们删除了3个硬编码的动作处理程序,消除了潜在的错误,并可以稍后使用软更新轻松进行增强。丢失密码恢复的一个或多个实现可以在1.0发布之后作为单独的智能合约来提供。
现在在Github上可用
EOSIO Dawn 4.0现在可在GitHub上使用,因此开发人员可以开始测试他们的应用程序。
EOSIO 1.0即将推出
我们的团队正在全天候工作,在6月的第一周为市场带来稳定的EOSIO 1.0。这个初始版本将具备让任何人创建自己的基于EOSIO的区块链所需的一切。我们实施了“功能冻结”,接下来的几周将致力于运行和内部测试网络并修复发现的错误。我们的目标是确保最关键的功能坚如磐石。在EOSIO 1.0之后,我们将继续增强EOSIO软件的非分支变化,这将实现大量的可用性和基础设施改进。
相关文章:

shell脚本俄罗斯方块游戏
亲自测试了一个大牛写的shell脚本,感兴趣可以看看,效果如下: 代码如下: 1 #!/bin/bash2 3 # Tetris Game4 # 10.21.2003 xhchen<[email]xhchenwinbond.com.tw[/email]>5 6 #APP declaration7 APP_NAME"${0##*[\\/]}&…

python 虚拟现实_虚拟现实 | MOOC中国 - 慕课改变你,你改变世界
你将学到什么Discover the fundamentals of Virtual Reality, the hardware and history, different applications, and the psychology and challenges of the medium.Learn the basics of 3D graphics, how we create objects and how to lay them out to create an environm…

Linux常用开发环境软件-jdk安装
linux下安装jdk1.8版本 用rpm -qa | grep java查看rpm安装的jdk版本卸载openjdk[roothuangdanfeng ~]# rpm -e --nodeps tzdata-java-2016c-1.el6.noarch [roothuangdanfeng ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64 [roothuang…

EOS Cleos 命令使用指南
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 命令参考 操作 语法 例子 获取所有命令 $ cleos 例子 获取所有子命令 $ cleos ${command} 例子 链接节点 $ cleos --url node:{node}:no…

如何养出一个三十几亿身家的儿子
简评:他是 Atlassian 联合创始人($36亿)的父亲,他以前是花旗银行和 IBM 的高管,是在澳大利亚设立花旗银行的那个人。晚饭时间饭桌上与孩子们聊的是「global issues」。 为了避免混淆,以下简称「父亲」和「儿…

jQuery学习- 内容选择器
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>内容选择器</title><script src"js/jquery.js"></script><script type"text/javascript">$(function(){//利用:contains获取包…

quickpcb添加pcb库_quickpcb使用说明
怎样抄板呢?抄板流程是怎样的?抄板比设计难度低得多,抄板,其实就是依葫芦画瓢。抄板步骤的简单说明:1.扫描电路板图片2.运行Quickpcb2005程序3.在文件菜单中调入扫描的电路板图片4.这个软件提供了测量工具和计算器&…

[mqtt]mqtt嵌入式移植
目前在无线这块,很多4G模组的厂商已经将mqtt放入模块内,无需在项目代码中再实现mqtt移植 github eclipse paho source code: https://github.com/mqtt/mqtt.github.io/wiki/libraries STM32 mqtt移植: http://sun2y.me/2017/05/12/MQTT%E5%8D%8F%E8%AE%A…

vue中点击第一次没有触发按钮怎么操作_vue如何触发某个元素的单击事件?
我来回答一波吧,,,因为没复习,,导致知识点结合不紧密。。。原生的中。。我们的写法是这样的王蒿大爷function myFunction(){document.getElementById("demo").innerHTML"Hello World";}window.οn…

微信小程序request合法域名怎么配置啊
request合法域名怎么配置啊, 有木有配置好的大神发来看看呀! 用你申请小程序的后台账号,登录微信公众平台。然后点击设置,可配置服务器信息。<ignore_js_op>WechatIMG14.jpg (18.29 KB, 下载次数: 0) 登陆后 <ignore_js_…

全球比特币和区块链领域创业企业全景图
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 全球比特币和区块链创业企业中,美国的数量占全球55%,其次为英国占6%,新加坡占3%,中国仅占2%&#x…

iphone 在设置了initial-scale=1 之后,在设置滚动条之后,没有滑动效果的解决办法...
iphone在设置了initial-scale1 之后,我们终于可以以1:1 的比例进行页面设计了。 关于viewport,还有一个很重要的概念是:iphone 的safari 浏览器完全没有滚动条,而且不是简单的“隐藏滚动条”,是根本没有这个功能。 iph…

python入门小练习_python入门题目小练
Q1:Return the number (count) of vowels in the given string.We will consider a, e, i, o, and u as vowels for this Kata.The input string will only consist of lower case letters and/or spaces.也就是返回给定字符串中的元音字母(a, e, i, o, u)个数。分析࿱…

Cookie 用法
//Cookie:是一个客户端状态保持机制,(网站的数据是存在客户端),与隐藏域与ViewState对象都属于这种客户端状态保持,Cookie中存储的是关于网站相关的文本字符串数据。Cookie的存储方式有两种,如果不指定过期…

比特币vs分布式账本vs以太坊vs区块链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 我们经常被告知,区块链 - 比特币背后的技术 - 不仅将重新布线银行业,还包括社会保障支付,医疗保健甚至数字投票…

git 修改标签名称_Git常用命令汇总,希望能帮到你
展示帮助信息git help -g回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。git fetch --all && git reset --hard origin/master重设第一个commit也就是把所有的改动都重新放回工作区,并清空所有的commit,这样就可以重新提…

js字符串去重
js字符串去重: 1、 去掉字符串前后所有空格: function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); }说明: 如果使用jQuery直接使用$.trim(str)方法即可,str表示要去掉前后所有空格的字符串。 2、 去掉字…

JavaScript-也来谈--闭包
闭包,以前研究过,可能是当初理解的不够透彻,现在又忘了,(给自己一个台阶下-...)毕竟js一直没怎么用, 为了防止自己过段时间再忘了,写篇重要的闭包重点, 这样时不时也能温习下知识,不…

ABS是啥,为什么区块链可以与它完美结合?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 房地产市场在各方调控下终于进入新的平稳期,但租房市场近日来却是水涨船高。抛开传统的租售比概念不谈,今天小编想和大家谈…

Python学习笔记——全局变量声明
最近在编写python程序时发现,在函数中可以对函数外面的全局变量进行读取、打印等操作,但是不能赋值,否则会报错:UnboundLocalError: local variable a referenced before assignment示例代码如下:a 0def fun():print(…

发那科机器人示教器电缆线_云和发那科机器人维修
广州友仪机电设备有限公司创立于2007年,成长在自动化行业高速发展的高铁上,现在已经成为华南地区具影响力的工控维修品牌,2015年我们再出发,组织公司精英力量设立机器人项目事业部,投入大量经费购入四大家族的主力机型…

HDU 5729 Rigid Frameworks(连通性DP)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid5729 【题目大意】 给出一个n*m的方格框,可以在单位矩形中添加两种对角线的线,使得其变得稳定,问使得其变成稳定图形的方案数。 【题解】 稳定状态指的是在n*m范围内每行每列都有一个…

区块链+5G=智慧城市?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 智慧城市是一个非常大的产业范畴,同时包括面向政府的智慧治理、面向市民的智慧民生和面向产业的智慧经济三大板块,涵盖了智…

Vue - 表单
表单输入绑定 用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景…

.NET 获取客户端的操作系统版本、浏览器版本和IP地址
我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取。 .NET 获取客户端的操作系统 请看下面的代码,我们首先创建一个…

android evaluater_android – 带有test.R.java的Robolectric
我在API21上有一个使用robolectric 3.0的库项目,com.android.tools.build:grad:1.3.1.我想在robolectric测试中使用测试资源(好像在src / androidTest / res / …下),即com.mypackage.test.R.java(而不是用于生产的com.mypackage.R.java).到目前为止我所…

比特币区块的产生速度为何被设定为10分钟?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 众所周知,比特币的block产生速度被设定为了10分钟,按着官方wiki所说,每一个节点需要一些时间来确认block(<1…

PAT Advanced Level 1010
1010 Radix (25)(25 分) Given a pair of positive integers, for example, 6 and 110, can this equation 6 110 be true? The answer is "yes", if 6 is a decimal number and 110 is a binary number. Now for any pair of positive inte…

4.0 C++远征:重载运算符
目录 重载运算符四、重载运算符1.一元运算符重载2.二元运算符重载重载运算符 四、重载运算符 概念 : 给原有运算符赋予新功能。 本质 : 函数重载。 关键字 : operator 1.一元运算符重载 符号只与一个操作数进行运算。 Ⅰ -(负号)的重载(取反…

django权限系统实现步骤_Django密码系统实现过程详解
一、Django密码存储和加密方式#算法迭代盐加密$$$默认加密方式配置#settings里的默认配置PASSWORD_HASHERS [django.contrib.auth.hashers.PBKDF2PasswordHasher,django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher,django.contrib.auth.hashers.Argon2PasswordHasher,dja…