EOS.IO

33 篇文章 3 订阅
1 篇文章 0 订阅

权威资料

  1. 共识算法 (DPOS)
  2. 帐户
  3. 应用程序的确定性并行执行
  4. Token 模型与资源使用
  5. 治理 (治理是人们在主观问题上达成共识的过程,而这无法完全用软件算法来捕获。)
  6. 脚本 & 虚拟机
    EOS.IO 首先会是一个平台用于协同用户间认证消息的传递。 脚本语言和虚拟机的具体实现与 EOS.IO 技术的设计是分离的。 任何语言或者虚拟主机,只要确定并适合沙盒,带有足够的运行效率均可以和 EOS.IO 软件 API 对接。
  7. 跨链通信

与ethereum的比较

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

一些点

EOS代币的所有者给予用户按比例的网络带宽、存储空间、和运算能力。

到底是怎样做到的。

EOS如何做到并行

区块链共识取决于确定性 (可重现的) 的行为。 这意味着所有的并行计算必须是不能互斥或者具有其他锁特性的。 没有了锁就必须有一些方式可以确保所有的帐户只可以读取和写入他们自己的私有数据库。 这也意味着每个帐户处理消息是顺序的,而并发只能在帐户层面进行。

In an EOS.IO software-based blockchain, it is the job of the block producer to organize message delivery into independent threads so that they can be evaluated in parallel. 每个帐户的状态由且只由发送给它的消息决定。 进度表由区块生产者输出并且会被确定性的执行,但是生成进度表的过程却不一定是确定性的。 这意味着区块生产者可以使用并发算法来调度交易。

并行执行的一方面意味着当一个脚本生成了一个新的消息,它不会立即被发送,而被安排在下一个轮训中发送。 不能立马发出的原因是接受者可能在另一个线程中活跃的变更自己的状态。

虚拟机独立架构

It is the intention of the EOS.IO software-based blockchain that multiple virtual machines can be supported and new virtual machines added over time as necessary. 因此,本文并不讨论任何特定的语言或者虚拟机。 That said, there are two virtual machines that are currently being evaluated for use with an EOS.IO software-based blockchain.

Web 组建 (WASM) ?

网络组建是一种为了构建高性能的 web 应用而新兴的 web 标准。 只需要进行少量的更改 Web 组建就可以被制作为确定性的和沙盒化的。 Web 组建的好处是它有着广泛的产业支持并且它可以让智能合约使用熟知的语言进行开发,比如 C 或 C++。

以太访开发者已经开始更改 Web 组建来提供合适的沙盒与确定性在他们的以太访式 Web 组建 (WASM)。 这种方式让 EOS.IO 很容易的与之适配和对接。

以太访虚拟机 (EVM)

这个虚拟机已经被众多已有的智能合约所采用并且可以通过适配应用与 EOS.IO 区块链中。 It is conceivable that EVM contracts could be run within their own sandbox inside an EOS.IO software-based blockchain and that with some adaptation EVM contracts could communicate with other EOS.IO software blockchain applications.

用于轻客户端的 Merkle 证明 (LCV) ?

如果客户端不需要处理所有的交易会让多区块链间的整合更为轻松。 毕竟,一个交易所只需要关心交易所的入账和出账,别无他求。 如果交易所链条可以使用资金的轻量 merkle 证明,而不必非要完全依赖对它区块生产者的信任会是一个不错的主意。 至少一个链的区块生产者在与其他区块链同步时更乐意保持尽可能小的开销。

这里写图片描述

LCV 的目标能产生相对轻量存在性证明,使得任何追踪相对轻量数据集的人可以验证其有效性。 在这种情况下,目的是为了证明一个特定的交易是包含在一个特定的区块中,区块包含在一个特定的区块链的已验证历史中。

比特币支持通过全节点的完整记录获取每年 4MB 大小的区块头信息来验证交易。 每秒 10 个交易,一个有效的证明需要 512 个字节。 这对于有 10 分钟间隔的区块链没有问题,但是对于 3 秒间隔区块链就显得不那么“轻量”了。

EOS.IO 软件使得任何一个人只要他拥有包含交易所对应区块之后的随意一个不可逆的区块头,他就可以进行轻量证明。 使用下面展示的哈希链结构就可以使用少于 1024 字节的大小来完成任意交易的存在性证明。 如果假设校验节点在过去几天内所有的区块头一直增长 (2MB 的数据),那么验证这些交易将只需要 200 字节就够了。

将生产的区块与恰当的哈希链做关联使得开销增幅很小,这意味着没有理由不使用这种方式来生成区块。

当需要验证其他链时,有譬如 时间/ 空间/ 带宽 的多样化优化可以做。 追踪全部区块头 (420 MB/年) 将保持证明体积的轻巧。 只追踪最近的头可以提供最小长期存储和证明大小来获得。 另外,一个区块链可以使用懒惰的评估方法,即它记住过去证明的中间值哈希。 新证明只需要包含指向已知稀疏树的链接。 确切的方法将取决于那些包含对 Merkle 证明引用的交易所在的外部区块的比例。

一定密度的联系后,将变得更为高效,一个链会包含另一个链整个区块的历史和消除证据一起,这样就不需要通信便可以验证了。 出于性能原因,应最小化的跨链证明的频率。

将身份验证与应用程序分离

为降低资源消耗,EOS操作系统将身份验证和应用程序进行分离,验证逻辑分为三个阶段:
1.确认消息在内部是一致的;内部一致就无需访问区块链状态,对外就是只读的。可以并行进行。
2.确认所有的前置条件都是有效的;同样前置条件也是只读的,也可以并行。
3.修改应用程序状态。这里就是写入操作,串行对每个程序进行处理。
交易进入区块之前是需要身份验证的,但交易一旦被包含在区块链中,就不再需要执行身份验证操作了。

DPOS 如何做自治的管理,我认为有两层,一层是协议层面的治理,比如进化和改变一致性算法,一层是应用层面的治理,比如应用有bug,我们需要回滚,你可以帮我们探讨下这两层的自治么?

第一层实际上是软件层面的宪法,是有所有的节点上跑的软件决定的。持票者选择区块生产者,决定什么时间去硬分叉。EOS是不会有硬分叉的,当整个网络决定是升级的时候,那些节点不知道怎么去做升级的会被自动关闭。而区块的生产者,也会等到升级后再生产区块,所以即使在你升级的时候,你也不会错失任何一个区块。steem 过去每个月都会有一个大的升级,过去大概进行了18次升级,没有一次会有硬分叉。EOS的一条哲学是,事物需要改变,最适者生存,而不是最强者生存。这也是自由市场的原则,长期来看,如果你不改变,那你就会被淘汰。所以eos被设计为一条可以持续不停进化的链。 这就是第一层的治理。

对于第二层治理,比如开发者开发了一个DAO,那里有一个bug,所有的资金都被偷走了,发行者拥有在没有硬分叉的前提下,升级合约的权利。区块生产者,有审查区块的权利。完美的代码是不可能的,Bug始终会发生,这是EOS认识到的,而其他的平台可能没有意识到的一个问题。即使代码被安全运行了多年,里面还是可能有隐藏的bug。之前一段时间,bts就有这样的一个隐藏bug,非常微妙的情况下,会把所有的生产者给冻结。我们都依赖的SSL,所有的电脑都在用,实际上也是有不安全的问题。代码不是完美的,我们需要有恢复的手段,我们围绕这点做设计。这种方式允许开发者,自己去建立自己的治理层,他们可以创建投票为是否可以更新代码。在其他的一些区块链上,身份和财产是分离的,拥有私钥这个身份,即使你通过hack电脑获得了私钥,并不意味着,你就真的是这个财产的所有人。身份和财产权,是系统想要去保护的,期望完整符合法律,而不是9/10的复合法律。

更多

  1. https://www.jianshu.com/p/bc489db794ce
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EOSIO的设计包括: 免费汇率限制交易 低延迟阻止确认(0.5秒) 低开销的拜占庭容错终结 可选的高开销,低延迟BFT终端 由Web Assembly支持的智能合约平台 专为稀疏头灯客户端验证而设计 计划的周期性事务 时间延迟安全 基于角色的权限分级 支持生物识别硬件安全密钥(例如Apple安全飞地) 并行执行上下文自由验证逻辑 区块链间通信 EOSIO允许开发人员编写与需求确定性执行的共识算法兼容的业务逻辑。您的用户群可以使用安全的公钥基础结构与此业务逻辑进行交互,为您的业务带来区块链级别的安全性,责任性和可审计性。业务逻辑根据组织的治理结构轻松更新。 EOSIO旨在在没有任何令牌的环境中运行,系统管理员为用户分配可能无限制的资源配额。或者,智能合约可以通过其他方式分配资源配额,例如令牌销售,市场费用或投票。这使得EOSIO非常适合企业和社区驱动的区块链。 根据您的使用情况,可以将EOSIO配置为使用两种不同的Web装配引擎之一Binaryen和WAVM。单个EOSIO区块链可支持高达1,000 TPS,未来版本的EOSIO将提供简化区块链间通信所需的工具,使您的业务能够水平扩展。 EOSIO是在开放源代码MIT许可下发布的,按“原样”提供,没有任何明示或暗示的担保。EOSIO软件提供的任何安全性部分取决于它的使用,配置和部署方式。EOSIO建立在许多第三方库上,如Binaryen(Apache许可证)和WAVM(BSD 3-clause),它们也是“按现状”提供的,没有任何形式的保证。在不限制前述内容的一般性的情况下,Block.one不作任何陈述或保证EOSIO或任何第三方库将按预期执行或不会出现错误,错误或错误代码。这两种方式都可能以很大或很小的方式失败,这可能会完全或部分地限制功能或危害计算机系统。如果您使用或实施EOSIO,则自行承担风险。在任何情况下都不会阻止。
### 回答1: vaspkit中的准EOS.in文件是用来拟合晶体的体积-能量曲线(Equation of state, EOS)的。该文件通过计算不同体积下的晶体能量,拟合出晶体的体积-能量关系,可以得到晶体的基态体积和其他物理量,如弹性常数等。 对于Ni24Mn18Sb6,你可以按照以下步骤设置EOS.in文件: 1. 在POSCAR文件中确定晶体的原子位置和晶格参数。 2. 在INCAR文件中设置DOS计算的参数,例如ENCUT、ISMEAR和SIGMA等。 3. 在KPOINTS文件中设置计算的k点数目和布局方式。 4. 在准EOS.in文件中设置不同体积下的晶体结构,并计算其能量。 一般来说,我们可以通过对体积范围的扫描来确定最佳的晶格参数和基态体积。在准备准EOS.in文件时,你需要给出一系列的体积值,并为每个体积值设置一个对应的POSCAR文件。例如,可以在一个名为"volume"的文件夹中创建一系列名为"POSCAR-X"的POSCAR文件,其中"X"是不同体积的编号。然后,在准EOS.in文件中,你需要指定这些POSCAR文件的路径,并为每个POSCAR文件设置一个体积值,以及其他必要的参数。 下面是一个简单的Ni24Mn18Sb6准EOS.in文件的示例: ``` &general prefix = 'NiMnSb' !文件前缀 ndir = 6 !体积扫描方向数 min_scale = 0.95 !体积缩放系数 max_scale = 1.05 step_scale = 0.01 / &files poscar_path = 'volume/POSCAR-' !POSCAR文件路径和前缀 potcar_path = '/path/to/POTCAR' !POTCAR文件路径 incar_path = '/path/to/INCAR' !INCAR文件路径 kpoints_path = '/path/to/KPOINTS' !KPOINTS文件路径 outcar_path = 'OUTCAR' !OUTCAR文件名 / &params ecut = 500 !截断能cutoff isif = 2 !弛豫类型 nsw = 50 !最大步数 ediff = 1e-6 !收敛标准 / &volume 0.95 !体积缩放系数 0.96 0.97 0.98 0.99 1.00 1.01 1.02 1.03 1.04 1.05 / &end ``` 在这个例子中,我们将体积范围定义为原始体积的95%到105%,并在这个范围内生成11个体积值。POSCAR文件位于名为"volume"的文件夹中,每个文件名为"POSCAR-X",其中"X"是体积值的编号。其他文件的路径和参数也需要设置为你自己的情况。 希望这可以帮助到你。 ### 回答2: vaspkit中的准EOS.in文件是用于拟合晶体的能量-体积曲线(Equation of State, EOS)的文件。通过拟合能量-体积曲线,可以得到晶体的平衡晶格常数和体模量等重要参数。这对于研究材料的性质和相变行为非常有帮助。 针对Ni24Mn18Sb6的EOS.in文件设置,首先需要知道该晶体的体积变化范围。可以根据已有的实验数据或者理论计算结果来确定体积范围。然后,在EOS.in文件中定义不同体积下的晶体结构,可以选择使用不同的输入文件来代表这些结构。 在设置EOS.in文件时,需要在VASPKIT的安装文件夹中使用类似下面的命令: ```bash vaspkit fit EOS -all -resc 0.01 -range 0.95 1.05 -step 0.01 -order 3 ``` 其中,-range用于设置体积的变化范围,-step用于设置每个体积点之间的间距,-order用于选择拟合的多项式阶数。根据具体需要,可以调整这些参数的数值。 在完成设置后,运行上述命令,vaspkit将会在当前目录生成能量-体积曲线的图像和最佳拟合结果,同时也会输出最佳的平衡晶格常数和体模量。以此为基础,可以进一步研究该晶体的特性和相变行为。 ### 回答3: vaspkit的准EOS.in文件是用来进行晶体结构的弛豫和体积优化的工具。通过准EOS.in文件,可以对晶体结构进行体积变化的计算,从而得到晶体的体积-能量曲线,进而确定晶体的平衡体积和晶格常数。 对于Ni24Mn18Sb6的EOS.in设置,可以按照以下步骤进行: 1. 创建一个名为"EOS.in"的文件,用来设置准EOS计算的参数。 2. 在文件中添加以下内容: Type = quasieos # 设置计算类型为准EOS AtomType = Ni # 原子类型 AtomNumber = 24 # 原子数量 AtomType = Mn # 原子类型 AtomNumber = 18 # 原子数量 AtomType = Sb # 原子类型 AtomNumber = 6 # 原子数量 Lattice = sc # 晶格类型,这里设置为简单立方格子 LatConst = 5.00 # 初始晶格常数,根据实际情况进行设置 Step = 0.05 # 增大或减小晶格常数的步长 MinVolumes = 0.9 # 最小体积变化范围的比例系数 MaxVolumes = 1.1 # 最大体积变化范围的比例系数 Increment = 0.01 # 晶格常数递增或递减的步长 FixSymmetry= False # 是否固定晶体的对称性 FixShape = False # 是否固定晶体的形状 OutputDir = eos # 设置输出目录名 CerfixDir = cerfix # 设置Cerfix目录名 3. 根据需要进行其他参数的设置,例如选择不同的晶格类型、不同的初始晶格常数等。 4. 运行VASP软件,使用准EOS.in文件进行体积优化计算。计算结果将输出到指定的输出目录中eos文件夹中。 通过对输出的能量-体积曲线进行分析,可以获得Ni24Mn18Sb6晶体在不同体积下的能量变化,从而确定其平衡晶格常数和体积。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值