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. Shell脚本——cat/EOF输出多行

    在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...

  2. Python基础学习参考(七):字典和集合

    一.字典 字典跟列表一样是一组数据的集合.它的特点是什么呢? 特点一:字典具有键(key)和值(value),其中键必须是唯一的,不可重复的,即键必须可以哈希的.对于值没有要求. 特点二:字典是无序的 ...

  3. Python中从B类中调用A类的方法。

    好久没上了,Python还在学--最近进度有点慢... 下面代码记录了一个不太好理解的点,自己写了个小例子,总算是理顺了. B类想要调用A类,自己在网上看了一下其他人的回复:创建A类的实例,直接调用这 ...

  4. RTlinux3.2安装

    ( 1 ).前言 2003 年以后, fmslabs 的 RTLinux Free 版本为 3.2Pre ,和以前的 RTLinux 3.1 比较,不再需要必须从 2.4.4 的内核上安装. RTLi ...

  5. dojo省份地市级联之地市封装类(二)

    dojo省份地市级联之地市封装类 City.java: /** * 地市封装类 */ package com.you.model; import java.io.Serializable; /** * ...

  6. jquery-1.11.1.js

       每次想要使用这个js时,总是要到官网上下载,太麻烦,现在把它收录了 jquery-1.11.1.js /*! * jQuery JavaScript Library v1.11.1 * http ...

  7. 提取DirectShow中视频采集的数据

    DirectShow中,数据流(Data Flow)都是依次流过各个Filter的.它对数据的管理也有自己的方法,而且并没有向用户提供一个统一的接口,供用户操作数据流.这里以提取视频采集在的每帧为位图 ...

  8. C#图解教程 第十六章 转换

    转换 什么是转换隐式转换显式转换和强制转换 强制转换 转换的类型数字的转换 隐式数字转换溢出检测上下文 1.checked和unchecked运算符2.checked语句和unchecked语句 显式 ...

  9. Project入门学习

    Microsoft Office Project制定项目计划时,针对每项任务是可以分配具体的资源的,比如由某个人完成某项任务,或者把某项设备分配到某项任务,这样便于项目的管理和人员.设备的安排及有效利 ...

  10. 简述Spring事务有几种管理方法,写出一种配置方式

    Spring事务有两种方式: 1.编程式事务:(代码中嵌入) 2.声明式事务:(注解,XML) 注解方式配置事务的方式如下: 首先,需要在applicationContext.xml中添加启动配置,代 ...