如何生成以及注册eos公钥

ERC: EOS在完成ICO后是会将目前在以太坊网络的ERC20代币转到EOS自己的区块链网络的,所以以下操作的意义就是为了将目前你以太坊钱包里的EOS,映射到将来的EOS网络中做的准备,而且在EOS ICO结束前是必须完成的操作。

原文链接:https://steemit.com/eos/@peterchen145/39yu5j-eos

公钥映射只需要在2018 年 7月3号之前完成就可以了。

大家不要紧张。

第一步:生成eos密钥对(key-pair)

1.访问EOS Token Generator,

看到如下界面

这个页面是由@nadejde基于eos官方源码开发的,他只保留了生产密钥的功能,其他的都去除了。感兴趣的,可以看他的原始文章:https://steemit.com/eos/@nadejde/eos-key-generator,

代码在这:https://github.com/Nadejde/eos-token-sale

官方代码在这:https://github.com/EOSIO/eos-token-distribution

2.点击 Generate EOS key

过一会就会生成你的密钥对:

一定把你的私钥(private key)保存好了,私钥是没办法恢复的,切记切记。

第二步:注册/映射eos密钥

注册eos密钥就是把刚才生成的密钥对建立映射关系,把公钥映射到以太坊地址上。在整个代币分发过程结束后的48小时后,erc20 代币将不能转移,而是根据映射的密钥重新生成eos区块链。

这么说好像挺复杂,简单来说就是这个过程很重要,记住这点就行了。

不过也请放松,2018年7月3号还很遥远,你有大把时间把这事情搞清楚。

注册/映射你的eos密钥对只需要在整个ico完成前进行就可以了。

你只需要注册/映射eos密钥一次就行了,注册多次只是浪费钱,除非你想更新密钥映射。

下面就是注册/映射eos密钥的步骤:

1 访问这个地址https://www.myetherwallet.com/#contracts

2 在Select Existing Contract下拉列表中选择eos contribution

3 点击access

4 这时会在access下出现这些内容:

在select a function下拉框中选择register

5 然后会出现新的内容:

在key 这栏输入你的公钥,注意是公钥。

6 然后解锁你的钱包:

7 点击解锁

8

然后,点击write

9 这时弹出一个提示框

转账数额 设为0,gas limit用默认的就行,如果钱包没有帮你自动生成gas limit,就写:90000;如果交易失败了,就提高gas limit。

10 点击生成交易。

11

点击“是的,我确定!发送交易”

12 如果一切顺利,会在页面底部出现一个绿色条,包含着一链接。

基于EOS.IO 软件的区块链存储成本

原文链接:https://steemit.com/eos/@eosio/storage-costs-on-blockchains-using-eos-io-software?from=singlemessage&isappinstalled=0

ERC:这篇文章对于理解EOS很关键,是目前可用预见的最大成本瓶颈。

在EOS.IO技术白皮书中,我们讨论了一个采用未经修改的软件包的区块链的一些特征。在本文中,我们描述了一种资源分配方法,即如果您拥有1%的代币,那么软件将为您分配该区块链1%的可用存储容量。如果有10亿个代币以及1TB的存储空间,那么每存储1024字节将花费大约1个代币。价值30亿美元的市值相当于每1024字节花费3美元。如果代币达到Ethereum的市值,那么每1024字节可能是30美元,或者说每个字节约3美分。

我们也知道,用EOS.IO软件创建的每一个帐户都大约有1000字节的数据,包括为了追踪权限、账户余额和其他杂项开销。这意味着每个帐户的成本将为30美元,不过仍然太高。

提高节约成本的能力

为了在代币价格比较高的时候降低成本,我们需要增加容量。为了将每个帐户的成本降至0.01美元,我们将需要3000TB的存储空间。如果我们可以使用SSD,这种存储将耗资约100万美元。如果一个基于EOS.IO的区块链达到300亿美元的估值,每年可以分配15亿美元给区块生产者(通货膨胀率为5%),那么这种100万美元的资金是微不足道的。

不幸的是,SSD比RAM大约慢2500倍,并且最近Steem升级到chainbase时,许多Steem见证人发现强制要求操作系统“转换”到SSD可能断然终止进程。这意味着我们需要3000TB的RAM速度级的存储。这并不罕见,Google将其整个数据库保留在RAM中,不同寻常的是一个新的平台需要这么多的RAM。

新的存储技术

英特尔最近开始出货其第一款基于新的3D XPoint技术的Optane SSD。这是第一款可以配置用作RAM的SSD,尽管它比传统RAM稍微慢点,但是比原来的SSD拥有更快的性能。他们将在今年晚些时候发布这些1.5TB容量的驱动。

通过这些新技术,我们认为高性能内存的成本将大幅下降,区块生产者应该能够扩大可用内存以降低成本。代币的市场估值越高,区块生产者将能够支付更多的存储容量。

挑战的真实本质

EOS.IO软件的RAM存储器的代币化使其除了存储价值之外还拥有货币价值。这种附加的货币价值使得相对于没有货币价值的实际存储来说是昂贵的。黄金在工业中并没有被大量使用,是因为它的货币价值超过了其工业价值。使用EOS.IO软件的人创建的代币通过要求当选的区块生产者提供性能证明,有效地地将RAM存储容量货币化。

像一家银行的黄金储备一样,大部分时间它只是存储在那儿从未被使用过。实际上,区块生产者可以宣称“3000TB的存储容量”,但实际上他们只有3TB的容量,1000倍的备份储量。在这种模式下,就像黄金支持票据的存储的费用会如同黄金的价值一样降低,容量存储的成本也会降低。除非突然有人决定购买1%的货币,并尝试存储30TB的数据,而实际可用的只有不到3TB,除此之外将一切正常。

阻止内存银行的运转

只要大多数人从来没有试着去使用他们名下的存储空间,那么一个区块链网络可以以每个代币获得“廉价存储”的方式来操作。随着可用存储量的降低,价格将不得不增加。任何时候,一旦有人想要使用100%的可用存储空间,那么他将不得不支付100%的流动代币;然而,只想使用1%的可用存储空间的人可能只需要支付0.01%的流动代币即可。这个里面使用的准确的方程式需要做一些建模和估计,但是使用第一个存储字节的初始价格比使用所有可用存储的每字节价格便宜1000倍是可能的。

你可以这样理解,一开始你可以启动1000倍的储备率,随后会降至1倍,因为实际的存储百分比被消耗了。所以如果你有1TB真正的RAM,你可以从1000TB的虚拟RAM(1000倍)开始。在消费第一个100GB(10%)之后,您的存储率可能下降到100倍,导致新的虚拟RAM为100TB。当你消耗500GB(50%)的时候,您的储备率将降至20倍,同时拥有的虚拟内存为20TB。随着虚拟RAM下降,每个代币的虚拟RAM也将自动降低从而增加每个附加存储单元的价格。

可变定价的影响

市场自然会消耗资源,直到市场价格不断变化之后导致供需平衡。如果存储的初始定价太便宜,它将迅速被消耗掉,直到价格上涨到只能存储有价值的数据。在这一点上,区块生产者可以增加存储能力或最大储备率来降低价格。代币持有者将投票给价格最实惠的区块生产者,如果代币价格上涨,区块生产者将能够承担额外的能力。

可变定价的另一个因素是在不使用时释放闲置内存的财务激励。随着代币价值增加,使用这些代币来维持存储的机会成本也增加。智能合约开发者们将基于最小化内存使用量及最大化回收利用的原则来设计应用程序。

内存蹲守攻击

这种算法的一个副作用是想要消耗大量内存的人有财务激励机制促使他们成为第一个去消耗内存的人。一旦他们消耗了内存,他们可以在合约中重新规划使用它们。如果他们需要钱,他们可以释放这些内存。第一时间储备内存将快速推高价格,到达投机需求与实际需求的平衡点。

幸运的是,由于保留的内存是“不可传输的”,并且初始的内存成本比购买实际的物理RAM还要贵一百倍左右,所以这个攻击得到了很大的缓和。这个网络使用的每个字节的内存被复制并存储在超过100个完整节点中,并且通常很多都是次节点。网络必须为这些人支付足够的费用来保证购买和维护内存的并行操作。因此,在100个节点上复制的去中心化的RAM每个字节的费用,通常会比中心化的RAM高100倍左右。区块生产者应该注意保持存储率设置,使得当分解所需的冗余级别时,每个字节的成本不会低于这个网络使用的实际存储的成本。

总结

市场自然而然且不可避免地将货币属性加入EOS.IO软件创建的代币中。有必要对消耗额外内存单元的成本进行动态定价,以保持实际价格与真正应用程序开发的价格是对等的。这与新内存技术相结合将确保:在基于EOS.IO软件的区块链上存储数据的成本对于去中心化应用程序开发人员来说是合理的。

EOS经济系统分析[转载]

作者 王巨

前言

在此之前,我分析过EOS和ETH内在的经济逻辑的不同。最近看BM的专访并再次阅读了几遍EOS的白皮书,对EOS的经济系统有了更深刻的理解。

我们知道EOS Token代表的是EOS链上资源的使用权,这些资源包括了带宽和日志存储(磁盘)、计算与计算储备(中央处理器)、状态存储(内存)。再仔细阅读白皮书我们也会知道EOS Token有以下特性:无消耗、可以代理、温和增发(ICO完成后,每年增发不超过5%)。为什么EOS会有这样的设计?其经济激励系统如何能保证系统正常发展下去呢?

免费使用的EOS区块链

EOS没有设计成ETH那样消耗Gas的模式,使用户在使用EOS时可以不用付费,从而免费使用DApp提供的服务。而这仅仅需要锁定部分EOS,注意锁定的EOS不会被消耗,它还是属于EOS的持有者。想明白这些之后,我们可以理解,所有用户只要使用了EOS链上的资源就必须有对等的EOS被锁定才行。

EOS的代理模式

上面的设定又引入了一个新问题,用户使用一个DApp提供的服务就必须持有EOS Token吗?用户会为了使用一个应用而花钱买EOS的Token吗?且不说成本有多高,就是光购买的流程就会让大部分人却步。EOS系统对此是怎么设计的呢?注意看EOS Token的第二个特性,它是可以代理给别人的,就是说如果用户账户没有持有EOS,那么DApp的开发者可以授权给客户使用自己的EOS份额。可以想象,绝大部分Dapp会采用该模式为自己的客户提供服务。回顾一下,DApp的开发者根据自己服务的规模购入适量的EOS,用自己的DApp为用户服务,而用户无需为EOS基础链上的资源付费,用户只需按DApp的服务付费(当然也可以不付费,这要看DApp提供的是付费服务还是免费服务)。这样跟现实的中心化服务模式一致了,用户感知不到自己用的是区块链应用还是中心化的应用。个人猜测这也应该是区块链发展的正确方向。甚至EOS有比中心化服务更优秀的地方,试想一下如果我提供了一个中心化的服务,假设花1w块租用了一个云服务器,结果服务上线之后没人用,没几天就下线了。那你花的租用服务器的钱是不是就算作沉默成本打水漂了,最多折算一下退你部分钱?EOS却不一样,服务停了EOS还是你的,完全没有折旧的风险,甚至有极大可能是增值的。这是不是降低了服务提供商的成本?是不是可以吸引更多的服务提供商加入到EOS的系统中?

增发机制

DApp多了,大家都在抢占EOS链上资源怎么办,有什么激励机制能让EOS链的服务能力跟需求保持一致呢?这其实就是一个供需平衡的机制了。EOS每年增发不超过5%,增发的部分会奖励给区块的生产者。EOS区块产生者的扩容积极性就跟EOS的价格挂钩了。随着链上DApp的增多,DApp的开发者会购买大量的EOS以让自己占有的EOS服务能力的百分比增加已保证自己服务的可用性,这样带来的后果就是推高EOS的价格,而价格的升高反向刺激了区块生产者增加服务能力以赚取EOS(服务能力不行会被投票出局),而服务能力增加了也就能保证了所有DApp的运行,这是一个正向反馈的过程。服务越多EOS价格必然会上涨。可以想象如果链上出现了一款爆款应用量级达到了月活亿级,那EOS会有多贵。

以上都是我本人对EOS的理解,由于知识局限性,上述内容可能完全是错的。

© 著作权归作者所有

EOS.IO的黎明

在EOS.IO的技术白皮书中,我们认为EOS.IO软件是区块链计算的新时代的黎明。这个夏天,EOS.IO的开发团队都在努力工作。现在夏天结束了,EOS.IO的开发进度也比计划的要快。现在已经可以使用分发网络配置了。本文我们将报告EOS.IO的诸多进展情况,请读完本文。

性能证明(proof of performance)

现在EOS.IO软件已经可以使用到分发网络配置中了,所以我们可以对它的性能进行测试。我们的内部测试显示,目前EOS.IO软件在多节点网络中的单线程每秒交易量达到10000笔。这样,在拥有超过100个CPU的机器上就能支持超过100万的tps(transactions per second)性能。

改进设计

我们最新的软件架构做了改进,开发者在上面开发并行应用将会更加容易。开发者们听到这个消息应该会比较开心。

共享数据库访问

我们现在可以允许一个应用去读取另外一个应用的数据库状态,而不需要复杂的异步通信。同时,通过允许每笔交易对它需要读或写的范围进行声明,我们还保留了并行执行的能力。区块生产者们将对交易进行调度,因此网络中不会存在数据冲突。

应用数据的用户本地存储

除了支持跨账户的读操作,应用现在还能把数据保存到其它账户上。这意味着一个现金合约可以把余额保存到每个用户的账户上,而不是保存到现金合约自己的作用域内。从Alice到Bob的交易只需要读/写Alice和Bob的作用域,而不会影响现金合约的作用域。这样就能让很多应用并行地执行,并能让现金转账的处理突破单线程吞吐量的限制。目前就我们所知,还没有其它的区块链支持这样的可拓展的方式来开发并行软件架构。

行内消息传递(inline message passing)

现在,给另一个应用发送消息比任何时候都容易,并且你能确定它一定会被接收和验证。一个应用可以生成任意多的附加信息,添加到当前交易的末尾上去。只要这些生成的消息的读/写作用域相同,并能在分配的时间中执行,那么它们就一定会被分发,否则整个交易将会失效。
这种方式与其它平台使用的同步方式都不一样。同步消息发送有可能产生预料不到的重入性问题。重入性问题已经是无数bug和崩溃的一个来源,因为,对于开发者来说,他们在发起同步调用前,很难确保他们的合约状态是一致的。而使用行内消息传递方式,它把执行操作延迟到当前交易处理器之后进行,开发者就能分发消息,如果分发成功就能进行处理。如果分发失败,整个交易就会失效,而不会产生其它有害到副作用。这意味着你到消息处理器永远不会在一致的状态中调用。

延迟消息传递

有时候你不知道一条消息是否有效,或者,是否有足够的时间,使用当前交易进行行内处理。有时候你需要发送一条能在当前交易作用域之外访问数据的消息。这种情况下,应用可以要求区块生产者对消息进行调度,安排它在下一个周期或未来的一个区块进行分发。如果它是有效的,就会通知你的应用,如果是无效的,它就永远不会被调度,你的应用在超时之后就可以进行清理了。

无限制水平拓展

EOS.IO最新的设计给予了开发者极高的单机性能;能把业务拓展到百万级tps,而不需要复杂的异步架构。
也就是说,EOS.IO软件依然将支持应用组(不需要共享状态)之间的异步消息传递。
异步消息传递(比如普通蔟支持)有很多好处,但是这些好处是有成本的,就是它需要更大的开发复杂度;EOS.IO支持哪些需要数百万tps的业务这么做,但是对于性能要求没这么高的业务,EOS.IO提供了一种流水线的简单方式。

下一代网络拓扑

EOS.IO的设计初衷是,让区块生产者提供高性能去中心化架构作为服务。应用开发者需要很多区块生产者来聚集交易,他们需要API 节点,种子节点,数据库索引,存储以及主机服务。
高性能区块链需要高性能网络架构,这种架构跟目前已有的区块链都不一样。要达到百万级tps,每个节点就需要达到100 MB 每秒每链接。这对于大型数据中心来说是很平常的,但是对于普通家庭用户来说,却是不可想象的。
此外,高性能区块链还包含着各式各样的节点,这些节点运行着区块链的不同子集,并且可能会对交易历史进行修剪。这与以往的区块链系统是一个很大的区别,以往的区块链系统要求所有的节点都是一致的,并且保存着完整的历史记录。
一条传统的区块链由mesh网络中随机链接的节点的动态集合。他们的目标是普通家庭用户,带宽有限,它们透过家庭路由器(NAT),动态地往网络中添加节点。我们认为这种架构不符合高性能区块链架构的需求。
EOS.IO软件一开始就假设所有节点都是互相链接的。节点操作者协同工作,确保网络拓扑是安全的,计划良好的,以及是高效的。这就让区块生产者能互相建立起直接的(且安全的)链接,并且能防止攻击者通过扫描整个网络拓扑,然后寻找节点进行攻击。

区块生产者将托管公共端点,任何人都可以以此连接和订阅他们想要的交易数据的任何子集。这将最大限度地减少非区块生产者运行的完整节点的带宽需求。不想信任单个区块生产者的节点可以订阅多个资源或者等待2/3区块生产者的确认(约45秒)。
这种架构的好处在于,新的节点可以以非常高的速度从区块生产者提供的高带宽基础设施进行连接和同步。此外,这种架构旨在促进有效的单向流,而不是低效的双向协议。
在规模上,区块生产者将运营一个由EOS.IO提供支持的新的互联网主干网。区块生产者将如同使用跨大陆的专用光纤连接的一级互联网供应者一样。生产者将运行耳机用户可以连接的数据中心。第二级主要包括运行全部或部分节点、大型应用的人员。例如,像区块浏览器、网络钱包和加密货币交易这样的服务将会是区块生产者的二级用户。
我们认为这种有意合作网络建设的架构将使区块生产者在加密货币行业中提供独特、有质量的服务。

前方的道路

今年九月,block.one将发布EOS.IO Dawn 1.0版本,它应该足够稳定,足够记录,足以让任何人启动自己的测试网络,以便他们可以构建和部署应用程序。EOS.IO Dawn 1.0版本将是EOS.IO SDK(软件开发工具包)的第一个预发行版本。
那些关注我们EOS.IO进程的人应该很高兴看到我们提前了。(您可以在( https://github.com/EOSIO/Documentation/blob/master/Roadmap.md 查看我们的进程。)第一阶段,最小可行测试环境,包括独立节点、原生合同、虚拟机API、RPC接口、命令行工具(eosc)和基本开发者文档已经完成。我们将作为EOS.IO Dawn 1.0的标签版本。这个阶段预计在2017年夏天完成,实际将于9月22日结束。
我们已经完成了第二阶段——最小可行测试网络的一半。该阶段计划于2017年秋季完成,包括工作网络代码、虚拟机沙盒、资源使用和速率限制、成因导入和区块链间通信。目前我们已经有功能分布式网络和虚拟机沙盒。我们相信能按计划完成第二阶段。

EOS.IO Dawn 2.0的版本,也是下一个主要的预发行版本,将在年底推出。EOS.IO Dawn 2.0将包含1.0中不存在的几个关键功能,包括:
1.资源率限制(防止垃圾邮件/滥用)
2.默克尔树算法(用于跨链通信)
3.升级管理和监管
4.更强大的SDK
5.一般基础设施的改善
6.来自ERC20的代币示例快照
EOS.IO Dawn 2.0版本的目标是足够有效到能启动一个运行中的区块链。还有一件事……

EOS.IO存储

开发人员第一次能够创建和部署一个分布式应用和web界面,而不必担心带宽和存储成本,甚至可以自己托管任何服务器。这开创了新的创新性、去中心化的商业模式,比如去中心化的YouTube、Soundcloud或其他存储密集型项目。
除了计算带宽外,本地EOS.IO的基于软件的区块链代币所有者现在可以通过IPFS / HTTPS访问免费的云存储、托管和下载带宽,这种访问可以在不消耗、不交易代币的情况下进行。
为了实现这一点,区块生产者将在IPFS上为用户托管文件,并允许其他用户下载这些文件。存储资源通过区块链发行支付,并按照持有量对代币持有者进行速率限制。像EOS.IO带宽的模式,存储不会消耗EOS.IO的区块链代币,存储量会随着区块生产者硬件的升级而增加。
EOS.IO软件存储解决方案还可以支持那些没有代币的公共托管,更多细节将在上海和伦敦举办的区块链行业峰会上公布。

V神对于EOS能实现高并发的回复

V神最近在深圳讲座时的观点

  1. EOS是中心化应用,实际上只有100个加点参与,如果他们能实现去中心化并发,ETH也可以
  2. 使用DPOS只有100个节点参与验证,而且它们并没有merkle tree技术,所以这100个节点必然是算力很强的超级计算机。同时代理人节点容易被DDOS攻击

ERC注:

这回复很像3年前两人单挑的续集,只不过这会BM搞出了EOS,已经对ETH正面开战了

关于DPOS是中心化还是去中心化的观点很有意思,我比较认可的定义是Matthew Wampler-Doty提出了一个关于去中心化的有趣的定义:

判断一个协议是不是去中心化的,是看这个协议能不能在全部节点都永久性删除后,仅依靠一个节点仍然能够恢复过来正常运作。

这一项定义是深受生物学所启发的,就如同菌丝体借助一个单细胞就能恢复过来一样。这个观点十分的有意思,因为它引导我们注意到Tendermint是不如传统的区块链协议(比如说工作量证明协议、或者是PPC亦或是NXT中的权益证明协议)那么去中心化的。

BM挑战V神的相关内容

BM: 人人都在讨论以太坊,现在我已经收集累了很多关于以太坊的问题。正好在会议上,有机会向以太坊的主要开发者Vitalik提问。

BM提问 :(1)如何处理所有应用链集中建立在一条区块链上的问题,而你只关心区块链的名称、智能合约及博弈的问题。(2)为什么要处理纽约证交所的所有交易。

V: 我们能从几个不同的层来处理这个问题,可使你的去中心化应用整合到以太坊当中,第一层,是让整个数据库放进合约,同时能够在智能合约内体现计算。所以只要数据存在,计算也在里面。
第二层是让数据保持在链外,只是将默克尔根放到区块链上。假如你想要升级,合约能够自己询问新的默克尔树桥(merkle tree bridge)。

就像“div”能自己认证成“div”,这个想法能使数据在链外运行,计算则在链上进行。

第三种选择,是选择一些链外(off-chain)解决方案,但使用以太坊的脚本语言执行,信任交易和跨链交易同时可以以这些方式进行。

BM评论:我的第一个问题是关于以太坊的可扩展性,如何处理所有去中心化应用链集中建立在一条区块链上,而你只关心区块链的名称、智能合约和博弈的问题。为什么要处理纽约证交所的所有交易。

我不满意Vitalik的回答,因为他没有真正回答这个问题。具体来说,他提到了链外的数据存储方式,和默克尔树作为一种将数据保持链外存储,验证数据保持链上的一种方式,但问题是,你实际上不能做到这一点,将所有的数据都放在链外,即使不是存储在区块链中,只是merkel根在区块链中,数据仍然必须存在网络中的每个节点中,为了验证,区块链将不得不查询外部数据源,如果数据源错误或不可用,这将是不可持续、中心化的。那么将导致网络实际上不能被验证,第二种可能性是使用交叉链交易,这是我们推广使用的比特股(BitShares)是一样的,也是很多不同的区块链所用的,这个与比特币和莱特币的交易方式没有什么不同,而且真正的问题是为什么需要以太坊,如果你已经拥有所有这些不同的链,实际上,你并没有使用以太坊解决你的问题,我想你可以有多个克隆版的以太坊,每条链都做自己的事情,但另一个问题是为什么我要建在以太坊之上,如果实际上我并不是在同一个链上,毕竟在以太坊上,你必须做的计算将产生很多的开销,你必须把你的脚本存储在区块链当中,你必须将数据存储在区块链当中,不仅如此,每个计算和每个数据块都要收取交易费用,如果你将固定数量的带宽定义为一个去中心化的标准,在以太坊上的这些操作会更昂贵。所以在我看来,如果你想建立一个基于以太坊的去中心化应用程序,根本就没有理由使用以太坊,因为你将采用的是与Bitcoin跨链交易相同的方式进行交互。

BM提问:假如使用线下的脱链服务,如何让离开数据库的节点,验证智能合约是否执行正确,

V:假如是使用脱链服务(线下的数据),并不是每个人都能够看到单个的合约,所以当整个网络有不同级别的分离情况发生,但这个连接依然还是会形成,因为你可以使用以太坊的智能合约,这实际上就能使线下的数据能够在其他合约上流通执行,所以这个想法是成立的。
BM提问:另一个与工作量证明机制(POW)有关的问题,工作量证明机制在扩容经济方面看起来像中心化的,所以,无论谁垄断,最终仍由工作量证明机制控制这个网络。

V:这是很好的观点,我们正在研究两种独立的解决方案,一种方案是抵抗ASIC矿机的工作量证明算法,这种算法我们称之为“Dagger”算法,我们即将开始公开竞赛,做一些更有意义的研究,使用到工作量证明的算法当中,第二种则是权益证明(POS),权益证明(POS)与工作量证明(POW)相比更去中心化,我们会采取两种机制混合的策略,而工作量证明是能够允许CPU计算友好的挖矿模式。

BM评论:我问他的第二个问题是关于工作量证明机制,以及以太坊是如何使用基于安全模型的工作量证明机制,Vitalik回答说,他们可能会将工作量证明机制与权益证明机制混合起来使用,这种方法与我们将使用的方法非常类似,差异在于他们仍然试图专注于开发一个只兼容cpu的工作量证明机制, 或者一种新的让工作量证明可行的算法,但是这种并没什么用,和工作量证明机制没有太大关系,设想一下,如果它在一个cpu上工作,你最终拥有的大规模服务器集群和网络,将让你拥有大部分的哈希算力,没有什么可以让其停止的,它最终将被集中化、被控制,所以最重要的是你需要问自己,当你看这些证明的工作量或混合代币时,最重要的安全保障来自哪里。如果它来自工作量证明机制中,那么很有可能它最终将被中心化,你不能在任何形式的保障网络安全工作中采用工作量证明机制,这意味着你需要一个有100% POS机制的代币,但这个事情有一个关键点,在挖矿安全和挖矿共识之间存在差异性。当我提到挖矿共识时,我的意思是无论如何你必须决定谁创造下一个区块, 这可能是任何人,只要它不是所有人马上一起即可,如果你挖矿的唯一目的是确定下一个区块的创造者,而不是以任何形式保障安全,那么无论您是采用CPU的证明机制还是GPU的工作量证明机制都不重要。甚至使用具有工作量系统证明机制的ASIC完成。我们目前的做法是,我们对相应工作使用相同的动量,但不能保障网络安全,只是决定谁来生产下一个区块,比特股(BitShares)100%的安全性来自于它的权益证明机制,每一个区块都必须有一定的权益来保障出块,在没有和适量的权益证明的基础上,任何人都不可能产生一个新的区块,关于工作量证明机制和挖矿,很多人关注的另一个方面是代币或货币是如何发行的,这是一个糟糕的经济学例子,一个区块链应该尽量使拥有者的价值最大化,如果你付钱给人们去挖掘他的洞然后再填补它们,那么你以安全的名义付钱让人们给你做无意义的事情,降低你到整个货币供应量以免出现下列问题,他们目前的计划导致持续的通货膨胀必将存在,虽然随着时间的推移,它可能会不断下降,这表明安全是通过工作量证明机制在保障的,而不是仅仅使用工作量证明机制作为决定下一个出块者的手段。

ERC注:这还是2014年的事情,2014年以太坊刚完成ICO和几个早期POC,可以看出大神级别的人物看问题的超前性,看到了3年后的问题,不过也是现在EOS挑战ETH的发端,因为这些问题目前在ETH上的确爆发出来了。

EOS核心团队

Brendan Blumer是首席执行官。他自2014年以来一直参与区块链行业。Brendan建立的公司包括美国的MMORPGs中的虚拟货币交易业务,香港的okay.com和印度的1Group

Daniel Larimer是CTO。他专注于从虚拟现实模拟器到第二代加密货币的创新技术,最著名的是Bitshares。Daniel是被广泛采用的Proof of Stake和Decentralized Autonomous Corporations概念的发明者

Brock Pierce是合作伙伴。Brock是一个风险投资家和企业家,率先在游戏中使用数字货币,并为他创立的公司筹集超过2亿美元。Brock是比特币基金会的董事长,Blockchain Capital的联合创始人。

Ian Grigg是合伙人。他是一名财务密码学家,他已经建立了20多年的加密分类帐平台,Ian是“里卡德契约”的发明人,也是“三式记账法”共同发明人。

多看了几遍BM的 EOS Consensus Presentation

以下是一些新的发现和感悟

  1. 石墨烯技术架构的最大突破是基于DPOS能够支持10万TPS
  2. Steem系统的两个突破是无手续费transaction和恢复账号
  3. 关于EOS的存储,应用节点可以只存应用自己需要的数据,Block Porducer节点是需要存储全部数据的
  4. 关于EOS如何并行执行智能合约,方案就是Block Producer接到任务后,通过Cluster自行解决并行问题
  5. EOS存在一个constitution的概念,打算通过P2P的方式完成服务协议的链上签署
  6. 因为任何代码都可能有未知的漏洞(比如OpenSSL漏洞的案例),所以基于区块链的经济系统需要在共识的前提下有账户恢复的功能。(以太坊针对这个问题的研究重点则在形式化证明方向上)
  7. 无手续费交易的目的是让应用的使用模式类似目前互联网应用的免费模式,而不是让普通用户改变习惯来适应系统本身
  8. BTC和ETH每年消耗30亿美金的电费,EOS认为这部分费用应该用于奖励Block Producer
  9. EOS对Block Producer的奖励有community决定,大致是每年5%的代币增发,而非交易手续费(因为交易不需要手续费)
  10. DAPP应用开发者(公司)需要把EOS token转入一个stake contract,来获得EOS系统的使用(存储)资源
  11. 目前所有web应用都可以使用EOS完成区块链化
  12. EOS代币所代表的是一台由100个超级EOS区块链节点组成的World Computer的使用权。

Screen Shot 2017-07-29 at 10.10.11

Screen Shot 2017-07-29 at 15.29.46

视频地址:
https://www.youtube.com/watch?v=MUZWZj1pu94&t=1476s

EOS早期开发者预览版本发布

虽然EOS正式的测试网络还在准备中,但任何人已经可以在本地节点上创建自己的测试环境了。之后EOS还会有小修改,但不会太大。

同时我们也已经开始准备开发文档。目前的开发文档会经常落后于实际开发的进度,而且测试网络上线时我们会提供的标准文档差很多。

https://eosio.github.io/eos/

开始一个本地节点

任何人可以通过以下说明创建一个本地节点

How to Build EOS.IO (eosd)

通过RPC和本地节点交互

通过eosd命令,你能够配置一个基于HTTP的 REST/JSON 接口。目前已完成的API非常有效,但之后会不断增加。关于如何直接与RPC接口交互,请看下面的文档:

eosd RPC Interface

通过命令行CLI(eosc)与本地节点交互

eocs是一个打包了RPC接口的工具,它能够让用户更简单的进行eosd查询。该工具会最终成为开发者通过eosd发布区块链合约主要方法。

下面的文档介绍了如何通过eosc和eosd创建账户、转账、上传合约,以及与合约交互:

eosc – command line client

目前的开发进度

目前区块链上的操作不进行签名验证,所以目前所有账户可以触发任何action。这样进行应用的逻辑测试变得比较简单,同时也意味着目前不需要维护私钥钱包来取得网络的使用权。

接下来几周,我们会完成命令行钱包,以及让开发者可以打开签名验证和权限检查。

另外目前的RPC API非常难以查询合约状态。这个问题会在下周修复。

开始进行开发

我们已经准备了几个 模板合约 可以作为学习的起点。

目前可用的API可以在下面查看:
How to Write Contracts

这里是一个所有相关文档的索引列表:
https://eosio.github.io/eos/modules.html

开发者频道

我们会创建一个telegram channel主要进行开发讨论,你可以在里面获得帮助。

另外steemit上的 (#eosdev)[https://steemit.com/trending/eosdev] 会成为EOS开发者的stack exchange,任何有质量的问题,回答和教程回获得up votes。

这仅仅只是一个开始

基于社区的呼声,这里发布的只是一些基础信息。我们欢迎任何反馈,它们将帮助我们改进如何开发EOS.IO来更好的满足开发者的需要。所有文档和设计仍在不断更新中,而你的反馈会让他们变得更好。

原文链接:https://steemit.com/eosdev/@dan/eos-development-sneak-peek-for-very-early-developers

以太币的经济模型

作用

  1. 建立在以太坊(公链)上应用的每一个操作需要支付以太币,包括转账、智能合约中每一步操作,同时也防止了恶意程序的攻击
  2. 作为对矿工的奖励

Gas

  1. GasPrice: 用户可以自定义的Gas单价,一般用Gwei作单位
  2. GasAmount: 每一步操作消耗多少Gas的量由系统定义
  3. 两者相乘得到总共会消耗的以太币
  4. 消耗的以太币一部分发送到不可提现地址0x00销毁,一部分作为旷工奖励

调用合约方法所需要的Gas

  1. estimateGas 可以获得所需的gas数量
  2. 普通的转账交易所需要的gas是固定的21000
  3. 调用合约方法所需要的gas根据占用的资源(计算量、内存等)确定
  4. getTransactionReceipt返回gasUsed显示消耗的Gas

思考

  1. 以太坊具有交易系统的价值
  2. 以太币可通过以太坊进行二级市场交易
  3. 以太币的消耗(销毁)和增发(挖矿)使其成为一个流动的经济系统
  4. 围绕着这个经济系统,以太坊本身也可看做是一个去中心化的公司

参考

Gas气象站:http://ethgasstation.info/
发布矿工会打包的安全 gas price 的最低价格

以太币单位
wei 1
Kwei/ada/femto 103
Mwei/babbage/pico 106
Gwei/shannon/nano 109
szabo/micro 1012
finny/milli 1015
ether 1018

每个指令的 Gas 费用
操作名称 费用(单位:gas) 描述
step 1 为了支付一个执行周期的默认瓦斯量
stop 0 停止操作不需要任何费用
suicide 0 自杀操作不需要任何费用
sha3 20 一次SHA3操作的费用
sload 20 一次加载操作的费用
sstore 100 一次普通的存储操作所需的费用 (有时候会加倍或者免除)
balance 20 一次余额查询操作所需的费用
create 100 一次创建操作所需费用
call 20 一次调用操作所需费用
memory 1 在扩展存储时每增加一个单词所需费用
txdata 5 交易时每个字节的数据或者数据所需费用
transaction 500 每次交易所需费用