Daniel Larimer 刚刚披露了 EOS 的最近开发进展,原文 :https://steemit.com/eos/@dan/ukoxz-eos-io-development-update

为了开发进度,EOS 团队正在夜以继日地工作,很多之前提到的特性已经在 Github 的代码里实现了。

EOSIO BIOS

对于计算机来说,BIOS (Basic Input/Output System, 基本输入输出系统) 是系统计算机启动后首先运行的软件,再通过 BIOS 加载操作系统。参考计算机 BIOS 的设计, EOS 启动时会首先进入一个初始状态:

  1. 单一账户 (@eosio.system)

  2. 单一私钥

  3. 单一见证人

eosio.system 账号类似于 Linux 中的 root 账号,拥有最高权限,之后会让位给更高等级的操作系统智能合约。eosio.system 账号会上传操作系统智能合约,操作系统智能合约实现了以下内容:

  1. 投票、网络带宽、CPU 带宽、内存、存储权益。

  2. 见证人和投票代理人的生成。

这种初始状态类似胚胎干细胞,可以在不硬分叉的情况下修改系统。使得 EOS 的核心更加简洁,更容易进行测试。

动态调整见证人数量

之前见证人的数量在代码里被“写死”为 21 个,现在可以通过更新 @eosio.system 合约来修改见证人数量,不过默认还是 21 个。

这样可以方便 EOS 开发者进行本地测试,不需要在本地运行 21 个 eosiod 了。甚至可以只用一个见证人进行测试。

CPU 使用计量

为了激励开发者精简智能合约,节约 CPU 消耗,EOS 系统通过计算 WASM 指令计算智能合约的执行时间,并对智能合约的 CPU 使用进行限制。

见证人会对各个智能合约的 CPU 配额进行动态调整,当系统空闲时,智能合约可以临时使用更多的 CPU 资源。

为了防止计量算法被针对,见证人会在客观 CPU 资源限制的基础上增加人为的主观限制。

CPU 带宽与网络带宽分离

之前的更新中,将内存、储存、带宽权益进行了分离,但带宽包括了 CPU 带宽和网络带宽,有些应用可能只需要大量的网络带宽,不需要很多 CPU 带宽资源,也有很多应用正好相反,所以将 CPU 和网络带宽一起授权有时就不太合适。

对于普通用户来说,CPU 和网络带宽仍然是打包在一起的,高级用户可以分离两者,使得成本上更有灵活性。

交易压缩

由于加入了 C++ STL 库的支持,智能合约传输的数据量有时会增加至
200kB,所以 EOS 增加了对 zlib 压缩的支持,使得智能合约传输的数据量能减少 60% 甚至更多。

网络更新

P2P 网络团队一直致力于改进网络的性能和稳定性,这周又有了很大进展:

  1. 精简区块 —— 每个被广播的区块只含有交易 ID,而不需将每个交易内容再次广播,这样能节约接近 50% 的网络带宽。

  2. 长消息支持 ——  发送长消息(例如 50kB 的智能合约)需要使用特殊的网络协议。


评论

目前的进度还是比较理想的,之前有人认为多线程的推迟是一个利空,但多线程对于技术实现来说是一个不稳定因素,急于上线肯定会导致不可预料的后果。更何况单线程性能已经足够强大了。

另外,可以通过最近的更新感觉到,EOS 团队对于区块链本身的功能有了新的理解,区块链不再是传输数据的唯一渠道,EOS 应该会将 0.5s 每个的 cycle 作为网络数据传输的主力,而 3s 每个的区块仅作为简报与日志的用途,使得区块链回归了不可篡改数据库的初心,也使得 EOS 的交易确认速度达到了惊人的 1 秒级,以后的文章会详细分析。

圆方圆区块链汇集大批区块链名师,采取导师值班制,为学员实时解决技术疑难。请关注圆方圆区块链知识星球与导师。(培训咨询请联系船长13826054890微信手机同号)

作者小笛 ,专注于 EOS 技术研究与区块链智能合约开发.是圆方圆区块链的导师,更多小笛老师的文章和视频请关注圆方圆链圈公众号。

EOS 开发进展速报的更多相关文章

  1. 支持Touch ID!EOS 项目进展速报

    Daniel Larimer 周六在 Steemit 上向大家介绍了 EOS 项目的最新进展,惊喜不少. 原文链接 : https://steemit.com/eosio/@dan/eos-io-de ...

  2. EOS -- 一种灵巧的系统运行跟踪模块

    EOS到底是什么词的缩写,我猜应该是Error of System.最早接触它,是在UT那会.不过那会它是被设计成一个很大的数组,也没有被包含调用函数和行号,又或是时间,只是些计数.编码时,加减一个E ...

  3. eos超时 锁表问题 网友办法

    select * from v$locked_object; SELECT sid, serial#, username, osuser FROM v$session where sid = 45; ...

  4. EOS/普元:概述:中国IT业的悲哀

    公司引入了普元的EOS作为公司的基础架构平台,今后的所有项目将逐步向EOS的迁移,但对EOS的研究又让我不得不说出以下话: 1.EOS确实够简单,但未免简单过了头:从语言层面看EOS 因为EOS将成为 ...

  5. Eos持久化实体

    持久化实体 2009-11-30 20:53:38|  分类: 记事本_学习笔记 |  标签: |举报 |字号大中小 订阅     在EOS的实体定义中,如果使用了关联实体方式,主实体的外键属性是不存 ...

  6. EOS数据源的配置

    EOS产品默认安装完成后的数据源为default,由于业务需要,会配置多数据源,这就有了以下的随笔: 1.在governor里面新增数据源 2.逻辑流中,数据源默认为default,根据需要改为自己新 ...

  7. 听说你买了 EOS ,连代码什么样都不知道?

    最近发现很多人投资了 EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起:   ...

  8. EOS 上线前,先搞懂这两个基本概念

    如果你曾经尝试在本地运行 EOS 测试节点,会发现编译.运行并不是特别复杂,但官方教程里两个概念很容易把人搞晕: Account(账户)和 Wallet (钱包). EOS 的 Wallet 跟其他区 ...

  9. EOS 的世界里可能再也没有小偷了

    EOS 针对以下两种情况设计了应急措施: 1. 账户被盗(私钥被盗或有权限的其他账户被盗) 2. 账户遗失(私钥遗失或有权限的其他账户遗失) ## 1.账户被盗 EOS 有可能会强制要求所有账户的 O ...

随机推荐

  1. 算法提高 矩阵乘法 区间DP

    这是神题,n <= 1000,如果是极限数据普通的n^3区间DP怎么可能过?可偏偏就过了. 刘汝佳大哥的训练指南上面说的存在nlgn的算法解决矩阵链乘问题,可是百度都找不到.... AC代码 # ...

  2. POJ - 3087 模拟 [kuangbin带你飞]专题一

    模拟洗牌的过程,合并两堆拍的方式:使先取s2,再取s1:分离成两堆的方式:下面C张放到s1,上面C张到s2.当前牌型与第一次相同时,说明不能搜索到答案. AC代码 #include<cstdio ...

  3. openresty 中mime.types 文件缺失问题,无法展示图片

    看技术群有人问这个:"图片不展示了,直接下载了,怎么设置nginx",之前刚开始学习nginx时遇到过,然后 使用 openresty+lua在做网关时遇到过,这里还是记录下吧. ...

  4. Socket 参数笔记

    //服务端@RunWith(JUnit4.class) public class ServerSocketTest { @Test public void testServer() throws IO ...

  5. Redis安装,主从,主备切换

    网络环境: 主:10.187.120.5 从:10.187.69.58 从:10.187.69.59 一.安装 mv redis-2.8.19.tar.gz /export/servers/ cd / ...

  6. Linux传统Huge Pages与Transparent Huge Pages再次学习总结

      Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages).Huge Pages有时候也翻译成大页/标准大页/传统大页,它们都是Hu ...

  7. 一句Python,一句R︱数据的合并、分组、排序、翻转

    先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. python中的numpy模块相当于R中的matirx矩 ...

  8. file_get_contents函数不能使用的解决方法

    今天开发微信公众平台的时候 使用file_get_contents 去获得token 结果一直返回false.百度了一下,大部分都是说用curl 偶然发现可能是openssl没有开启的问题,开启ope ...

  9. Flex父子窗口相互调用

    Flex父子窗口相互调用 1.设计思路 (1)子窗口调用父窗口的方法 (2)子窗口做了修改后,返回父窗口,父窗口调用子窗口函数 2.设计源码 (1)父窗口 ParentWindow.mxml: < ...

  10. 芝麻HTTP:Python爬虫进阶之Scrapy框架安装配置

    初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 ...