EOS的基础知识

(一)EOS、EOS-Mainnet、EOSIO

和EOS相关的有不少概念,需要弄明白[1]。
2017年,一个叫Block.one的公司开发了一个叫EOSIO的软件。为了开发这个软件,Block.one进行了一个历时350天的众筹,最后募集资金超过40亿美元。
EOSIO这个软件是后来的EOS-Mainnet和其他区块链网络(BOS、Telos等等)构建网络的基础工具。
EOS-Mainnet,也就是EOS主网,是我们目前使用最广泛的基于EOSIO软件的区块链网络。网上听说的很多EOS Dapp(Decentralized Application,去中心化的app)都是运行在EOS主网上,大多数人一说EOS,基本上指的就是EOS主网。
EOS是EOS主网上的原生代币的符号,EOS的数量体现了你在EOS主网上可使用资源和可参与治理的多少。EOS本身具有价格,可以在各大交易所购买。

(二)账户、公钥、私钥

我们拥有的EOS是存储在云端的,储存在哪里呢?(一般来说)储存在对应的账户上。在EOS上,账户类似于用户名,所有的操作都是以账户为基础的,转账、投票、更新信息,参与Dapp等等。账户需要注册,至多12位字符。
如何证明这个账户是属于你的而不是别人的呢?这个就需要用到公钥和私钥,用互联网来类比的话就是密码,不过这个密码是由公钥和私钥两部分构成的。
形象地理解,公钥和私钥就相当于锁和钥匙,私钥,也就是钥匙,掌握在你自己手里;公钥,也就是锁,和账户绑定。如果你想在账户里进行操作,就需要用你手里的私钥和公钥匹配,如果匹配上了,那么账户就认为你是所有者。
实际上,EOS的账户系统还可以更加复杂,比如给予每个公钥/私钥对不同的权限(Owner和Active),对一个账户就行多人共管(Multi-sig,多签)等等,暂时先不展开了。
注意,一个公钥/私钥对可以同时控制多个账户。

(三)钱包

我觉得,钱包完全是被错误翻译导致理解出现歧义的一个东西。前面说过,我们拥有的EOS是储存在云端的账号里面的,因此它的相关数据并不物理地存储在本地的硬件上(手机、电脑),而是存在EOS网络上。
就如同我们可以通过浏览器方便、快捷地浏览互联网的内容一样,我们也可以通过钱包方便、快捷地接入EOS主网,将私钥与账户匹配,进行相关的操作。钱包本质是一个带有电子签名功能的浏览器。
所以,只要记住私钥,你可以借助任何形式的钱包登录到EOS主网上。钱包出现的任何问题,不会影响你对账户的所有权,也不会影响你的资产。
很多钱包会推出助记词,还会提示你设置一个密码,这些只是钱包帮助你提高安全性的一种手段。只要记住私钥,钱包的密码忘记了没有任何关系,删掉重新导入一次私钥就可以。
常用的钱包,PC端和国外主要用Scatter[2],手机端和国内主要用TokenPocket[3]、Meetone[4]。这些可以通过他们的官网下载。
每个EOS账户里面存在着三者资源,所有的操作都需要花费这三种资源,可以理解,这三种资源是你使用EOS网络的成本。这三种资源叫做计算(CPU)、存储(RAM)和网络(NET)。
如何理解?把EOS看做一个云计算服务平台,这三种资源就比较容易理解了。

二、“EOS云”的三种资源

(一)EOS就是代币化的分布式PaaS公有云平台

云计算,按照NIST(美国国家标准与技术研究院)的定义:
云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
说白话,就是“让计算、存储、网络、数据、算法、应用等软硬件资源像电一样,随时随地、即插即用。”[5]
根据中国信通院的定义[6],公有云是区别于私有云和混合云的一种部署云计算服务的模式。
公有云是指基础设施由某一组织所拥有,面向公众或某一行业提供云计算服务的部署模式。
而云计算服务又分为三大类:
IaaS:基础设施即服务(Infrastructure-as-a-Service),是将硬件资源进行虚拟化,将计算基础设施(CPU/内存和存储/操作系统)等以出租的方式提供给企业的服务模式。
PaaS:平台即服务(Platform-as-a-Service),是由云计算服务提供商搭建云计算资源服务平台,并将平台能力以开发、运行环境的方式提供给企业进行程序的编码、开发、部署和管理的服务模式。
SaaS:软件即服务(Software-as-a-Service),云计算服务提供商通过互联网向企业提供软件应用能力,并按订购的服务量和时长向企业收取费用的服务模式。
对照上述定义,我认为EOS就是一个代币化的分布式PaaS公有云平台。
EOS类似于一个运行在分布式服务器(21个节点)上的一个PaaS类公有云服务,而在这个公有云中,存在一种通证(Token)——EOS,能够对整个PaaS的资源(治理权和资源权,注意不仅仅是资源权)进行有效的配置。
换句话说,EOS类似一个代币化的Google App Engine(而不是代币化的AWS)[7]。在这个平台上,EOS提供了一个软件部署平台(runtime),Dapp的开发者只需要关注自己的业务逻辑,不需要关注底层[8]。
EOS的账户体系内的资源也是模拟了IaaS底层的资源。IaaS提供的一般是通用计算、存储和网络三大基础资源,对应到EOS的账户体系,EOS账户内也包括了计算(CPU)、存储(RAM)和网络(NET)三大资源,但是具体含义又略有不同[9]。
项目 传统含义 EOS上含义
计算(CPU) 中央处理单元,指的是负责在计算机中执行指令和处理信息的硬件; 一种按时间计价的资源(单位:微秒),用来衡量EOS节点应该对你帐户中的交易确认所投入的时间;
网络(NET) 互联网带宽; 一种以空间计价的资源(单位:字节),用来衡量当在P2P层上传输数据时需要多少区块的网络描述来存储你的交易数据;
存储(RAM) 存储是用来存储云平台上的所有数据。RAM是指运行内存,速度更快,但储存是暂时的,断电后内容就会消失; RAM不再是临时存储,而是作为主储存层,用来储存所有的数据。相当于是让储存速度更快的内存(RAM)充当了硬盘的功能。在RAM中存储数据库,可以让读取数据的速度更快。

(二)三大资源介绍

1. CPU

什么是CPU?每当你向EOS网络提交交易时,BP节点们都必须处理该交易。 CPU是BP节点在处理、验证交易时必须花费的时间,以微秒(μs)为单位[10]。
CPU的价格?如果整个EOS网上有1000个代币被抵押在CPU上,而我的账户抵押了20个,那么我保证会拥有CPU总容量的2%的使用权。 如果网络没有被大量使用并且没有达到激活限速阈值,我的CPU用量能超过总量的2%,一旦网络繁忙,达到了该阈值,我就最多只能用到我的2%[10]。
什么时候消耗CPU?当用户调用智能合约时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的CPU算力。CPU计算资源的计量方式为,运行智能合约(交易也属于智能合约的一种)所消耗的时间,用户每次调用智能合约都会消耗一点计算资源,如果消耗为0则无法继续执行合约[11]。
CPU如何恢复?CPU的恢复周期是24小时,而且是线性恢复,某笔交易的CPU占用在24小时内直线递减为零[12]。

2. NET

什么是NET?当用户发送一笔交易信息后,区块生产者需要将这笔交易打包生成区块,然后将区块通过网络同步给其它生产者,这个过程需要消耗一定网络带宽资源[11]。
NET的价格?系统会根据抵押Token所占全网Token的比例,分配给用户对应的带宽资源。
NET的计量方式?NET的计量方式为,交易信息在区块中所占的字节数,比如,一条交易信息占用100字节,如果用户进行10笔交易的话,大概需要100 * 10 = 1KB。带宽资源的计费方式类似手机流量,用户每发送一笔交易信息就消耗一点带宽资源,如果带宽资源消耗为0,则无法继续发送交易信息[11]。
NET如何恢复?NET的恢复周期也是24小时,也是线性恢复。

3. RAM

对整个世界来说,RAM是一种异变的内存,当你暂时储存之后,它就会消失。它在EOS中有点不同,我们用它做为主储存层。在EOS中,我们把所有东西都放在RAM中,这是为了性能的考虑,如今,Facebook也是在RAM中存储MySQL数据库,因为它的速度更快。RAM 是允许 EOS 每秒处理非常高交易量的主要因素之一:如果这些数据被磁盘存储,那么访问磁盘的时间将限制吞吐量[13]。
RAM的价格?[13]
RAM的价格采用Bancor算法(这是另一个需要展开论述的内容了,此处略)计算得出,经过推导,算法精简如下(公式来自:newdex):
RAM价格 ≈ 当前EOS池子总量 / 当前全网未分配RAM
简单概括:RAM的价格会根据RAM的供应量来计算,如果RAM的供应量增加(实际供应量),那么,RAM的价格会下跌;如果RAM的供应量减少,则RAM的价格会上升。
什么时候消耗RAM?[14]
EOS的RAM的本质和硬盘实际差不多。我们现在把硬盘的储存空间比喻成一间仓库的储存空间,把数据比作一件件的货物,仓库要放货物的时候就需要消耗RAM。
  • 需要消耗RAM:注册账户、第一次投票、转账(第一次转账时的转出方消耗)、购买RAM、
  • 不需要消耗RAM:更新数据(更新币余额,更换私钥,更新投票状态)

(三)抵押和买卖的逻辑差异

CPU和NET可以通过抵押EOS获得(可以自己抵押,也可以让别人帮当抵押),如果不想抵押,可以通过租赁获得(具体在系统自带的资源交易所REX里面实现,或者找第三方租赁服务)。只要是抵押,是不会真正消耗EOS的,取消抵押后,EOS又回到账户中。
RAM则有一些不同,它主要是通过和系统交易买卖(Bancor算法计算的价格)实现的。同时RAM不能租赁,只能自己使用。
为什么会有这样的区别呢?
RAM是一种物理资产,在不扩容的前提下,量是固定的,且不会随着时间的增长而增长,具有一定的稀缺性;而NET、CPU资源则是一种虚拟资产,它的量是与时间相关的,时间越长量越大,一个月的NET/CPU的计算量是一天的30倍[15]。

三、EOS是什么,持有EOS意味着什么?

(一)资源维度:通过EOS拥有或转让云资源使用权

从物理层面,如上文所说,EOS就是一个代币化的分布式PaaS公有云平台,所有EOS持币人、EOS开发者都共用由21个节点维护的“EOS云”。
传统的云计算体系结构[16]是这样的:
对应到EOS上,大致是这样:
一个代币化的云平台,其代币的意义相当于将整个云资源进行“证券化(Securitization)”或“代币化(Tokenization)”。在这个维度上,EOS持币人相当于拥有了整个“EOS云”的一部分资源运用能力,也就是“资源权”。这种资源权的最直接体现就是资源交易所REX,你可以通过将闲置的CPU和NET资源使用权转让给网络上的其他用户,同时获得一定的经济补偿。

(二)治理维度:通过EOS行使投票权

如果仅仅是一个代币化的云平台(比如AWS或者GAE发币),谈不上治理维度。但是由于EOS独特的机制,在实际运行中,“EOS云”还存在一个治理层:
正是由于这个“治理层”的存在,使得EOS和其他的云平台产生了本质的区别。如果说其他的云平台只是机械地执行创造者的指令,EOS云平台开始有了“思考”和“自我演化”的可能。某种程度上,EOS云平台实现了“无机物”向“有机物”的转变。
正如生物的进化一样,能够“自我演化”的云平台,并不一定意味着会在激烈的生存竞争中活下来,这需要保持不断的“自我演化”。
“治理”的出现意味着云服务不再仅仅是冷冰冰的技术,“内部社会”已经有了雏形。在EOS内部,开始有了经济活动和政治活动。
EOS持币人需要通过投票选择为整个社区提供云基础运行维护的人员,此外,还要通过投票,确保这些提供云基础运行维护的人员在行为上也能够促进EOS本身的发展。也就是说,EOS持币人为整个社区选择出了21个最能为社区做出贡献的人,让他们承担社区的运营和维护,并给予他们奖励。EOS持币人拥有选择社区核心团队的权利,也就是“选举权”。
当然,EOS的治理尚不完善,还要很长的路要走。

(三)应用维度:EOS-Mainnet上的“本位币”

除了EOS在设计之初就赋予EOS币的“资源权”和“治理权”外,随着Dapp的不断发展,EOS还在逐渐形成一个新的功能:EOS-Mainnet上Dapp的“本位币”。
所有基于EOS开发的Dapp,除了可以自行发币来进行Dapp内部和外部的价值流动外,EOS本身也提供了这样的功能。而且,随着Newdex和Whaleex等交易所推出越来越多基于EOS的交易对,EOS越来越像整个主网上面的“本位币”。
比特币目前可以看做整个区块链资产的“本位币”,有非常好的交易深度,提供了避险功能。或许有朝一日,随着Dapp的不断发展,EOS也能够提供类似的避险功能。
下面这张图综合了上面论述的三个方面,持有EOS意味着:

四、理解EOS的价格影响因素

(一)资源维度和应用维度:商品供需视角

二级市场的价格由流通市场的供需决定,这无论在任何时候都是正确的。

1. 供给

先看供给,EOS的供给主要依靠协议制定的增发规则。
目前总EOS的个数为1,012,328,729.6887个(2018/5/20 11:00数据,来源eosflare),扣除b1账户的100,000,003个,再扣除eosio.saving账户2,993,322.4057个(这部分暂时不进入流通),市场上全部可流通的EOS大概有9.1亿个,每年增发1000万个(10亿的1%进入流通),这就是所有市场上的EOS供给。
实际真实参与交易的EOS肯定没有这么多,根据eosflare统计,目前流通的EOS大约499,930,669个,也就是不到5亿个。
如果价格不断上涨,预计会有一些质押盘流出,但是不至于全部流出(毕竟节点还要投票),所以EOS上总供给应该是在5亿到9亿之间浮动,以30元/个计量,目前大约总供给量为150亿人民币左右。

2. 需求

供给的决定比较容易,难的是对于需求的测算。不妨讨论一下,什么时候市场会需要EOS?
上文讨论过,持有EOS意味着拥有EOS云的资源使用权、节点投票权和整个网络的“本位币”。因此EOS的需求可以分为两部分:一部分是质押锁仓获得资源使用权和节点投票权,另一部分是承担整个网络的“货币”功能。

(1)需求一:质押锁仓EOS换取资源权和投票权

对于需要资源使用权或节点投票权的用户而言,EOS并不用于流通,而是用于兑换相关的权利,理论上来说,这部分的理论均衡点在于,REX年化收益率等于EOS网络增发率。这意味着,获取该权利并不会导致持币人稀释自身在系统中的权重。
假设:
  • 所有持币者都通过REX进行抵押操作;
  • EOS自身增发量为5%/年;
  • 对于节点来说,其均衡点在于REX年化收益+节点收益=EOS网络增发率,REX年化收益率可以略低于EOS网络增发率;
根据数据,目前30天的REX Earnings为1.48万个[17],倒推REX均衡持有量约为355.2万个。
目前REX总量约为6551万EOS[17],远高于REX均衡持有量。这意味着除非REX Earnings能够大幅提高,否则目前没有动机鼓励大家质押锁仓更多EOS。

(2)需求二:EOS网络正常的流通

根据EOSPark,目前全网全天转账金额平均为3000万个EOS左右[18],实际EOS需求应该是小于这个数字的。如果实际流通的价值波动不大,EOS流通数量和EOS价格成反比。

(3)需求三:二级市场投机

目前EOS的二级市场交易还是集中在交易所,而大多数交易似乎并没有上链,因此很难观测。目前来看,二级市场投机需求应该占据了整个EOS需求的绝大部分。
以上是对二级市场供需简单而粗略的分析,由于水平有限,分析的可以说是非常粗糙了。但是,定性的结论还是可以得出来的:在Dapp大规模发展之前,EOS的需求主要是投机。如果按照现在的租赁比率,Dapp的规模估计要达到现在规模的20倍(300多万个均衡REX抵押VS6500万个实际REX抵押),实际需求才会产生能够影响价格的影响。增加EOS的实际用户,发展Dapp依然是EOS目前最重要的工作。

(二)社会治理维度:“汇率”视角

供需的视角讨论的更多是EOS在资源维度和应用维度上面的需求。而对于治理维度,实际EOS的价格可以看做是EOS这个虚拟“国家”对其他“国家”的“汇率”。
国际金融学中的汇率决定理论[19],比如国际借贷学说、购买力平价学说、利率平价学说、国际收支学说、资产市场学说等,可以用于分析EOS的“汇率”视角。这个角度还没有比较成熟的想法,因此暂时不过多论述。
但核心是,由于EOS中涉及了治理、以及制度因素,未来EOS的发展,可能要从更大的社会维度上去和其他现有制度进行对比分析,从根本上分析经济演化的方式,而不仅仅通过经济学的框架分析价格的走势。
只能说,EOS中短期的价格影响因素主要受投机、用户规模、Dapp的普及有关,其中用户规模和Dapp的普及会对EOS价格产生支撑。长期来看,EOS所搭建的“虚拟社会”在全球的竞争力可能会对EOS价格产生大趋势上的影响。

五、EOS的发展与未来:Everyone’s Open Society

区块链的发展影响的不仅仅是经济层面,这也是EOS吸引我的地方。
冯仑说我们正在进入无边界社会[19],其四个特征是:
  1. 个人财产权的私有属性越来越弱化,取而代之的是共有与共享;
  2. 在无边界社会当中,所有要素的流动时间越来越快,成本越来越低;
  3. 无边界社会中的组织都变得越来越柔软,越来越有弹性;
  4. 无边界社会使我们的价值观出现两极化,一方面是达成共识的速度非常快;另外一方面极端和小众的认知、观念也迅速集合,并逐步形成社会中的独特力量。
EOS通过引入治理机制,将原来的人在“云”外,变成了人在“云”内。正如文章所说,“人类社会不再是一个树状结构,而逐渐变成了一种网状结构。”[20]
EOS目的在于成为一个去中心化的自治组织(DAO,Decentralized Autonomous Organization[21]),EOS代币表示一种按比例使用EOS网络资源和治理权的权利。EOS网络是由DAO管理的去中心化操作系统。DAO试图创建一种新的公司形式,其中,用户、开发人员和节点根据协议规则而不是按照CEO的指示进行协作。[22]
事实上,EOS能够提供的不仅仅是一个DAO,甚至其架构能够为去中心化的自治政府(DAG,Decentralized Autonomous Government)[23]和去中心化的自治社会(DAS,Decentralized Autonomous Society)[24]提供借鉴意义。
最终,希望Block.oneCTO——Daniel Larimer——的理想能够实现:
My mission in life is to find free market solutions to secure life, liberty, and property for all.(寻找自由市场的解决方案来保障所有人的生命,自由和财产)[25]
也希望EOS能够在这个未来的社会里承担重要的角色,让EOS成为Everyone’s Open Society[26]!
原文:https://smartsignature.io/article/486

dfuse Events

EOS Canada 最新发布了 dfuse Events,可以自定义 dfuse Search 的过滤条件的。

如果你直接从你的合约里的向 dfuseiohooks:event 发送 inline action,你就可以让 dfuse Search 索引某些字段。成功设置后你就可以在 dfuse API 和 eosq 上用 event.自定义字段:值 查到你自定义的交易了。

比如一个宠物养成的游戏可以通过 dfuse Events 设定筛选宠物的类型,设定好后就可以查,比如 event.pet_kind:dog,就是跟狗有关的交易

https://eosq.app/search?q=event.pet_kind%253Adog&__hstc=80591880.a6e8a41bc1836bd22c8043d287897a02.1543597242603.1557844076999.1557858069858.106&__hssc=80591880.12.1557858069858&__hsfp=247607504

相关文档在这 https://docs.dfuse.io/#dfuse-events

使用麦子钱包浏览器插件配置测试网环境

之前写过一篇使用Scatter配置EOS测试网络的文章,总体感觉Scatter的配置还是比较繁琐的,而且Scatter停止了浏览器插件的支持。

最近麦子钱包发布了浏览器插件版本,测试了一下觉得很有必要推荐给大家,尤其是DApp开发者和硬核DApp玩家使用。

目测有几大好处:

1 支持三大公链 EOS ETH 和 TRON,以及各种EOS姐妹链(BOS EOSForce Telos Worbli ENU MeetOne等)
2 支持多钱包,可以配置多个测试钱包
3 不同网络单独账户系统,不会互相干扰
4 设置简单

首先可以去麦子钱包官网安装浏览器插件:
http://maiziqianbao.net

装好并完成密码设定后进入【设置】-【网络】,打开 Kylin
Screen Shot 2019-04-09 at 18.34.26

回到首页,进入 Kylin 后即可导入测试网钱包了
Screen Shot 2019-04-09 at 18.34.40

使用之前提到过的工具 https://dev4eos.com/ 可以方便的进行测试网账户的创建

科普:4 种非原生 EOS history 数据查询方案

转发自慢雾的Keywolf的币乎文章:https://m.bihu.com/article/1393638973?i=YaZ&c=1&s=1wjz9X

1、Dfuse (EOS Canada)

支持跨域:是
功能特色:
这是我用过的最早的非原生 history API,查询灵活度很高,响应速度快
搭配 EOS Canada 自家的浏览器 eosq.app 可以很方便的查看每笔交易里 inline action、deferred tx 的上下文
可以查看 tx 里 RAM 的变化、合约 table 里数据的变化

2、Hyperion (EOS Rio)

支持跨域:是
功能特色:
筛选字段丰富,查询自由度较高

3、ElasticSearch (EOS Tribe)

支持跨域:未知
功能特色:
We are pleased to announce that we have built, tested and deployed a new History endpoint which allows user to search for actions in EOS Blockchain by date range and free text term.
官方文档里的示例不能用,接口报 403,Bloks 里也没找到有使用

4、Mongo (Cryptolions)

支持跨域:是
功能特色:
和原生 history API 差别不太大,接口响应速度比较一般
当然除了 Bloks 使用到的这 4 种,还有很多优秀的 API 服务,例如 EOSPark APIEOS InfraBLOCKDOG API 等,后续再发文分享。
By Keywolf@SlowMist
SlowMist Company(slowmist.com)
SlowMist Zone(slowmist.io)

dfuse 上手指南

背景介绍

EOS 因为 TPS 高,对交易数据的存储和查询反而成为一个让人头疼的事情,成本问题 EOS 自带的 history 插件也很少有节点会开放。一般解决方案有两种:自己搭建大数据库导入链上交易数据,使用第三方的 API 进行查询。

dfuse 能看得出是 EOS Canada 团队开发 eosq 区块浏览器时的 side project。试用了一下,比较让我惊讶的是其查询的自由度非常高,比如可以查询某个账户在过去某个区块高度的余额。

使用步骤

申请 API Key

https://www.dfuse.io/zh/

点击右上角【获得免费API密钥】

注册完成后你会收到类似下面这样的key:
eyJhbGciOiJLTVNFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NTQ5NjcxNDksImp0aSI6Ijc5YmE0ZjdkLTU5NTMtNDA4NC1iNDQwLTFlMWE5MGVmMmRjMyIsImlhdCI6MTU1MjM3NTE0OSwiaXNzIjoiZGZ1c2UuaW8iLCJzdWIiOiJDaVFBNmNieWUrc2o3SFVyTXZ4eW1…

根据文档进行测试

本文主要介绍 REST API 的使用方法,WebSocket的接口大家自行测试

打开 https://docs.dfuse.io 可以查看到接口的文档

我们来测试一下 【REST API】-【GET /v0/state/tables/accounts】这个接口

把下面这些参数填到 POSTMAN 工具中,URL那边如下填写

https://mainnet.eos.dfuse.io/v0/state/tables/accounts?accounts=eosio.token|eosadddddddd&scope=eosadddddddd&table=accounts&block_num=19000000&json=true

Headers – Authorization 的值是 【Bearer 之前收到的KEY】

account

这个查询的意思是返回:eosadddddddd这个账号在区块高度 19000000 时,EOS 和 ADD token的余额。
accounts 的值是 EOS 和 ADD token 的合约地址。

如何学习交易记录查询参数怎么写

交易记录的查询是一个更加常用的查询,我们可以通过 eosq 这个浏览器来学习其写法,熟练掌握基础写法后就可以进行更多高级查询了,如果有不支持的语法,你也可以加 dfuse 的 telegram 进行反馈。

介绍下通过 eosq 学习查询的步骤

打开:
https://eosq.app/account/eoscanadacom

鼠标移动,可以在界面上找到如下图中的 搜索 小图标
search

点击后在搜索框就是当前的查询语句
questy

复制查询语句到 dfuse transactions API 即可直接使用
(action:delegatebw OR action:undelegatebw) receiver:eosio data.receiver:eoscanadacom

下面的查询做的是:eoscanadacom 这个账号从 19000000 开始往后 19038649 个块里面倒序前10条 抵押和赎回 的交易记录

https://mainnet.eos.dfuse.io/v0/search/transactions?start_block=19000000&block_count=19038649&limit=10&sort=desc&q=(action:delegatebw OR action:undelegatebw) receiver:eosio data.receiver:eoscanadacom

transaction

更多资料

https://www.dfuse.io/zh/blog

有一个用 dfuse 开发的很有意思的项目:
https://eosinbox.io

介绍两个有用的安全合约 FireWall.X 和 ProPatingEOS

FireWall.X

https://github.com/firewall-x/contract

Firewall.x 主要有慢雾安全团队开发,通过这个工具可以对合约的调用地址进行黑白名单控制。信息不对称其实是很大的安全风险,一个安全漏洞传到开发者这里可能已经过了很久,而通过启用慢雾的恶意地址库,能够第一时间挡掉可能的攻击者账号,从而尽可能的提高安全性。

配合 Firewall.x 控制台 开发者可以自由控制 DApp 的用户黑白名单,禁止恶意用户访问,限制合约账号使用 DApp,查看调用频率以及查看异常调用日志,同时在 sdk 内为开发者提供了常用的账号检测接口,开发者也可根据需要调用。

ProPatingEOS

https://github.com/ProChain/ProRatingEOS/blob/master/README.md

ProRating是ProChain(般若)开源的链上账号评级合约,在链上存储全网账号属性,能够标注出合约账号、羊毛党黑名单、PRA KYC人脸比对结果、PRA CandyBox人机滑块验证结果,并具备数据实时更新特性。

DAPP开发者只需包含该头文件,即可在合约内部通过代码查询数据,适用于DAPP开发者防范合约攻击、防范羊毛党攻击、免人机滑块验证等应用场景。

这个合约主要对羊毛党的 EOS 账号实现有效打击,而 PRA 作为 EOS 生态最大的糖果盒,将自己在这一块的数据积累共享给社区非常值得点赞。

EOS Studio 介绍

EOS Studio 是由黑曜石实验室(Obsidian Labs)开发,他们是来自美国硅谷的技术团队,2018年初成立后在YCombinator孵化,目前专注于去中心化应用(DApps)生态的工具开发。团队曾获得2018年EOS黑客马拉松旧金山站第三,并获全球总决赛前三。

EOS Studio 的产品思路与之前介绍过的 Beosin EOS IDE 不同,它以客户端为主,能够帮助大家快速进行 Docker 版本的 EOS 以及相关工具的安装,通过本地的测试节点进行编译。
同时包括C++代码编辑器,EOS合约开发工具包(EOSIO.CDT),智能合约部署和调试工具,EOS帐户查看器,EOSIO版本管理器等。
也可以随时在本地网络、测试网和EOSIO主网环境之间切换。
比较适合想要一站式完整安装EOS到本地并进行合约开发的开发者,如果想要快速方便的话,则可以选择之前说到的Web IDE。

通过EOS Studio可以方便的安装并管理EOS开发所需的相关工具,包括本地EOS主程序,合约开发工具包(EOSIO.CDT),及系统合约源代码。EOS Studio还提供了针对EOS语法定制化的C++编辑器,编译部署工具,合约调试工具,并可以在本地节点,Kylin和Jungle测试网,及EOS主网之间随时切换,满足了开发者在EOS开发中的各种需求。

目前支持 Mac、Windows 和 Linux 版本:
https://www.eosstudio.io/

Beosin EOS-IDE

之前一直用 EOSMedi 开发的 https://dev4eos.com IDE工具做合约的编译和部署,不过最近无法使用了,好在成都链安做了一个更强大的:

https://beosin.com/EOS-IDE/index.html#/

支持EOS智能合约在线编辑、编译、一键部署和调试等多种功能,供所有开发者免费使用:

1、首款具备在线编辑、编译、运行调试、部署于一体的EOS开发工具

2、无需搭建开发环境,无需安装,在线操作

3、一切交互均以图形化方式

4、支持多个编译器版本

5、支持多种EOS节点部署运行

6、运行速度快、提示信息明确,极大提升了用户体验

7、开发人员可以高效完成EOS智能合约开发等工作

8、协助开发者在开发过程中提高漏洞风险意识,避免安全隐患

操作步骤:

1.1 加载本地磁盘文件及新增文件
在文件浏览区域上有如图1-2红框处两个图标,点击左侧图标创建新增文件名称,点击右侧图标选择打开本地文件。


如图 1-2 Beosin EOS-IDE文件浏览区

选择文件后可以右击对文件进行重命名或者删除操作。

1.2 编辑

IDE中上方是EOS智能合约编辑器区域。支持代码展开及合并,支持代码联想功能。

1.3 编译

在右边的功能区域选择Compile页签,会动态的显示当前编辑区域合约的编译信息,如显示错误和警告。编译成功后可点击Details查看ABI接口返回的详细信息。

编译器版本分为1.2.x、1.3.x、1.4.x、1.5.x四个版本。

注:若主合约与文件名不相同,请填写正确的合约名称。

1.4 部署

编译成功后进入run页签,选择账户及要部署的网络点击Deploy进行部署,网络包含:Local network、Test network、Main network,部署在测试网或主网时,浏览器需要安装钱包插件。部署结果将在中部下方Run log list中展示。

可以根据不同账户部署不同合约,无需二次部署即可直接运行。

1.5 运行

部署合约成功后,页面返回函数信息及设置账户权限、Tables查询功能,录入函数参数信息即可运行该函数。运行结果将在Run log list中展示。每运行一次都会在Run log list生成一条记录。点击“Inquire”按钮可以查询后台Tables数据信息。

参数录入规则:

1、多个参数以“,”分割。

2、asset类型参数录入int64_t和symbol_type以空格分开

3、数组参数录入见下图:

EOS 姐妹链的简介

准确来说 EOS 侧链目前还未出现,目前的侧链更多是基于 eosio 代码的姐妹链/分叉链,本文主要介绍下他们各自的特点:

EOS原力
https://www.eosforce.io/
初始分配:按 EOS 主网启动时映射 1:1 分配
原力特点是他把EOS资源模型改成了与ETH类似的GAS模型,另外一个特点是一票一投和投票分红。

ENU 牛油果
https://enumivo.org/
初始分配:80%在以太坊上空投,后映射到ENU主网
ENU的特点是其主打 UBI(普遍基本收入),尝试在链上做财富平均分配。

Telos
https://telosfoundation.io/
初始分配:按 EOS 主网启动时映射 1:1 分配,但每个地址最多被分配4万TLOS代币
目标是降低开发人员开发EOSIO DApp的成本,包括:缓速RAM扩容,稳定RAM价格,逆向加权投票,提高生产节点可靠性的恒定奖励等。

Worbli
https://worbli.io/
初始分配:40%即10亿代币,用于对EOS持有人进行空投,即按照2018年9月EOS主网快照 1:1 空投。
Worbli的目标是在合规的监管下构建金融服务类的dApp,提供合规的KYC和AML的环境。

BOS
https://boscore.io/
初始分配:10%空投(5千万按2019年1月EOS主网账户快照空投,5千万根据DApp和节点在链上的交易情况进行空投)
BOS的账户采取了低保模式,确保每个账号最低限度的使用,后续将落地资产跨链,以及提供对开发者激励的DAPP开发基金。