evm中存储
㈠ 以太坊架构是怎么样的
以太坊最上层的是DApp。它通过Web3.js和智能合约层进行交换。所有的智能合约都运行在EVM(以太坊虚拟机)上,并会用到RPC的调用。在EVM和RPC下面是以太坊的四大核心内容,包括:blockChain, 共识算法,挖矿以及网络层。除了DApp外,其他的所有部分都在以太坊的客户端里,目前最流行的以太坊客户端就是Geth(Go-Ethereum)
㈡ 以太坊是什么丨以太坊开发入门指南
以太坊是什么丨以太坊开发入门指南
很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。
以太坊是什么
以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台。它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。
对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用。
在没有以太坊之前,写区块链应用是这样的:拷贝一份比特币代码,然后去改底层代码如加密算法,共识机制,网络协议等等(很多山寨币就是这样,改改就出来一个新币)。
以太坊平台对底层区块链技术进行了封装,让区块链应用开发者可以直接基于以太坊平台进行开发,开发者只要专注于应用本身的开发,从而大大降低了难度。
目前围绕以太坊已经形成了一个较为完善的开发生态圈:有社区的支持,有很多开发框架、工具可以选择。
智能合约
什么是智能合约
以太坊上的程序称之为智能合约, 它是代码和数据(状态)的集合。
智能合约可以理解为在区块链上可以自动执行的(由事件驱动的)、以代码形式编写的合同(特殊的交易)。
在比特币脚本中,我们讲到过比特币的交易是可以编程的,但是比特币脚本有很多的限制,能够编写的程序也有限,而以太坊则更加完备(在计算机科学术语中,称它为是“图灵完备的”),让我们就像使用任何高级语言一样来编写几乎可以做任何事情的程序(智能合约)。
智能合约非常适合对信任、安全和持久性要求较高的应用场景,比如:数字货币、数字资产、投票、保险、金融应用、预测市场、产权所有权管理、物联网、点对点交易等等。
目前除数字货币之外,真正落地的应用还不多(就像移动平台刚开始出来一样),相信1到3年内,各种杀手级会慢慢出现。
编程语言:Solidity
智能合约的默认的编程语言是Solidity,文件扩展名以.sol结尾。
Solidity是和JavaScript相似的语言,用它来开发合约并编译成以太坊虚拟机字节代码。
还有长像Python的智能合约开发语言:Serpent,不过建议大家还是使用Solidity。
Browser-Solidity是一个浏览器的Solidity IDE, 大家可以点进去看看,以后我们更多文章介绍Solidity这个语言。
运行环境:EVM
EVM(Ethereum Virtual Machine)以太坊虚拟机是以太坊中智能合约的运行环境。
Solidity之于EVM,就像之于跟JVM的关系一样,这样大家就容易理解了。
以太坊虚拟机是一个隔离的环境,在EVM内部运行的代码不能跟外部有联系。
而EVM运行在以太坊节点上,当我们把合约部署到以太坊网络上之后,合约就可以在以太坊网络中运行了。
合约的编译
以太坊虚拟机上运行的是合约的字节码形式,需要我们在部署之前先对合约进行编译,可以选择Browser-Solidity Web IDE或solc编译器。
合约的部署
在以太坊上开发应用时,常常要使用到以太坊客户端(钱包)。平时我们在开发中,一般不接触到客户端或钱包的概念,它是什么呢?
以太坊客户端(钱包)
以太坊客户端,其实我们可以把它理解为一个开发者工具,它提供账户管理、挖矿、转账、智能合约的部署和执行等等功能。
EVM是由以太坊客户端提供的。
Geth是典型的开发以太坊时使用的客户端,基于Go语言开发。 Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。Geth的使用我们之后会有文章介绍,这里大家先有个概念。
Geth控制台和Chrome浏览器开发者工具里的面的控制台是类似,不过是跑在终端里。
相对于Geth,Mist则是图形化操作界面的以太坊客户端。
如何部署
智能合约的部署是指把合约字节码发布到区块链上,并使用一个特定的地址来标示这个合约,这个地址称为合约账户。
以太坊中有两类账户:
· 外部账户
该类账户被私钥控制(由人控制),没有关联任何代码。
· 合约账户
该类账户被它们的合约代码控制且有代码与之关联。
和比特币使用UTXO的设计不一样,以太坊使用更为简单的账户概念。
两类账户对于EVM来说是一样的。
外部账户与合约账户的区别和关系是这样的:一个外部账户可以通过创建和用自己的私钥来对交易进行签名,来发送消息给另一个外部账户或合约账户。
在两个外部账户之间传送消息是价值转移的过程。但从外部账户到合约账户的消息会激活合约账户的代码,允许它执行各种动作(比如转移代币,写入内部存储,挖出一个新代币,执行一些运算,创建一个新的合约等等)。
只有当外部账户发出指令时,合同账户才会执行相应的操作。
合约部署就是将编译好的合约字节码通过外部账号发送交易的形式部署到以太坊区块链上(由实际矿工出块之后,才真正部署成功)。
运行
合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。
Gas
和云计算相似,占用区块链的资源(不管是简单的转账交易,还是合约的部署和执行)同样需要付出相应的费用(天下没有免费的午餐对不对!)。
以太坊上用Gas机制来计费,Gas也可以认为是一个工作量单位,智能合约越复杂(计算步骤的数量和类型,占用的内存等),用来完成运行就需要越多Gas。
任何特定的合约所需的运行合约的Gas数量是固定的,由合约的复杂度决定。
而Gas价格由运行合约的人在提交运行合约请求的时候规定,以确定他愿意为这次交易愿意付出的费用:Gas价格(用以太币计价) * Gas数量。
Gas的目的是限制执行交易所需的工作量,同时为执行支付费用。当EVM执行交易时,Gas将按照特定规则被逐渐消耗,无论执行到什么位置,一旦Gas被耗尽,将会触发异常。当前调用帧所做的所有状态修改都将被回滚, 如果执行结束还有Gas剩余,这些Gas将被返还给发送账户。
如果没有这个限制,就会有人写出无法停止(如:死循环)的合约来阻塞网络。
因此实际上(把前面的内容串起来),我们需要一个有以太币余额的外部账户,来发起一个交易(普通交易或部署、运行一个合约),运行时,矿工收取相应的工作量费用。
以太坊网络
有些着急的同学要问了,没有以太币,要怎么进行智能合约的开发?可以选择以下方式:
选择以太坊官网测试网络Testnet
测试网络中,我们可以很容易获得免费的以太币,缺点是需要发很长时间初始化节点。
使用私有链
创建自己的以太币私有测试网络,通常也称为私有链,我们可以用它来作为一个测试环境来开发、调试和测试智能合约。
通过上面提到的Geth很容易就可以创建一个属于自己的测试网络,以太币想挖多少挖多少,也免去了同步正式网络的整个区块链数据。
使用开发者网络(模式)
相比私有链,开发者网络(模式)下,会自动分配一个有大量余额的开发者账户给我们使用。
使用模拟环境
另一个创建测试网络的方法是使用testrpc,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更方便快捷。而且testrpc可以在启动时帮我们创建10个存有资金的测试账户。
进行合约开发时,可以在testrpc中测试通过后,再部署到Geth节点中去。
更新:testrpc 现在已经并入到Truffle 开发框架中,现在名字是Ganache CLI。
Dapp:去中心化的应用程序
以太坊社区把基于智能合约的应用称为去中心化的应用程序(DecentralizedApp)。如果我们把区块链理解为一个不可篡改的数据库,智能合约理解为和数据库打交道的程序,那就很容易理解Dapp了,一个Dapp不单单有智能合约,比如还需要有一个友好的用户界面和其他的东西。
Truffle
Truffle是Dapp开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程。
总结
我们现在来总结一下,以太坊是平台,它让我们方便的使用区块链技术开发去中心化的应用,在这个应用中,使用Solidity来编写和区块链交互的智能合约,合约编写好后之后,我们需要用以太坊客户端用一个有余额的账户去部署及运行合约(使用Truffle框架可以更好的帮助我们做这些事情了)。为了开发方便,我们可以用Geth或testrpc来搭建一个测试网络。
注:本文中为了方便大家理解,对一些概念做了类比,有些严格来不是准确,不过我也认为对于初学者,也没有必要把每一个概念掌握的很细致和准确,学习是一个逐步深入的过程,很多时候我们会发现,过一段后,我们会对同一个东西有不一样的理解。
㈢ EpiK团队:打造共建共享共益的开源知识平台
1月10日,由EpiK铭识协议主办的“2021开源知识运动”主题活动为业界带来了一场知识图谱开放与互联的智慧盛宴。活动吸引了包括清华大学信息技术研究院副院长邢春晓、中国计算机学会知识图谱 SIG 主席/着名知识图谱专家/OpenKG主要发起人王昊奋、东北大学自然语言处理实验室副主任/小牛思拓创始人王会珍在内的重量级嘉宾参与。
在此次大会上,EpiK中国区负责人Eric Yao 做了《分布式知识图谱构建》的主题演讲,其中他重点提及了区块链去中心化的协作模式搭建共建共享共益的开放知识库的构想与实践。同时EpiK产品负责人介绍了即将推出的游戏化数据标注平台,详细内容如下:
前面三位老师分别讲述了知识图谱、区块链和数据标注三个方向的细节,而这三个方面融合在一起又会产生怎样的火花呢?接下来我要讲的EPIK PROTOCOL铭识协议,它的目的就是为了构建人类的永恒凯升知识库,从而提高AI的智能,这就是数据开源或者是知识开源。
为什么要搭建开源知识平台?
EpiK项目是基于区块链的可信的分布式数据和知识的共享平台,通过去中心化数据存储和协作的方式来实现数据的共建和共享。为什么Epik会嵌入到人工智能和区块链的结合的角度,来切入到创业中来?这与当下的时代背景密不可分。
第四次工业革命已经来临了,全面智能化是这个阶段的核心目标之一,各种智能体也在逐渐的走入日常生活,比如说siri、小爱同学等等人工智能的语音助手,还有各种有AI学习能力的家用电器,比如说冰箱洗衣机彩电等等。
人类的知识传承已经有数万年了,最早是甲骨文刻在石头上,最后演变成竹帛纸张,到数字化存在硬盘上,这些知识都以文本图片和音视频非结构化的数据结构来存储,人类理解这些知识是很容易的,比如,我们可以很轻松的从电影中或者是从歌曲中判断这个人物的关系和情节。但是对这些信息,机器理解是很难的,很难通过一祯一祯的屏幕来把人类的关系梳理出来,如何让机器理解我们的人类的知识?
谷歌2012年提出知识图谱,它通过结构化的人类体系,从而让机器掌握人类的知识,开拓AI的认知。这里有一个知识图谱,也是我们很熟悉的一部电影,叫做《复仇者联盟》,它是用一个一个的图谱组成的网络结构,描述了电影中透露的各种各样的信息,有了这些图谱,AI就可以读懂知识图谱回答很多的问题,比如如何获得宝石位置,从谁那里取得宝石等等。
人工智能是一个大的方向,但是这个事儿和区块链有什么关系,这个就需要引入到一个很严肃的话题,是人类怎么样才能信任人工智能或者机器智能,这里就涉及机器人是否会欺骗人类,迟孙余引导人类作出错误的决策。
AI或者知识图谱是很多的公司在做得事情,脸书,苹果、亚马逊、阿里巴巴等等,他们每个大公司都耗时费力的构建自己的知识图谱,但是这些知识图谱不是互联互通的,每个公司有自己的知识库,这就涉及到一个问题,中心化的知识库会面临被篡改知识图谱的隐患,由于知识图谱是一个可以一个一个三元组成的拓扑式网络结构,一个结点的变化,很容易导致计算机或者人工智能理解这个节点相关其他节点的关系都会发生变化,从而造成善恶或者立场的变化,这是非常危险的。
同时构建超大规模的知识图谱,还面临着无法组织大量的人工参与到构建知识库的过程中,缺少这样的组织结构,专业化是很难做到的,也会成为机器智能化巨大的障碍。
基于这两点可以看到,构建超大规模知识图谱,区块链技术是目前唯一找到解决这个问题的出路,因此,知识图谱就要开源开放可见度,这是它的必备属性,而不是不可对它产生的结果做解释。
构建开源知识平台有哪些挑战?
知识图谱底层的存储要开放开源和监督,但是人们怎么样可以协作共建知识库,同时可以访问知识库?
这里面有很多挑战,人类的知识是非常多的,领域也非常多,如何搭建共享平台我要是考虑几点。
第一点,如何开放知识共享,通过构建一些合理的工码滚具和机制,让人人都有渠道贡献知识,因为每一个人都是智能体,让有需求的人可以有方法和访问这些知识。
第二条,如何防范知识篡改,或者知识被更改的时候可以溯源的,这就需要用到区块链的东西,它能保证知识的确权和不可更改,同时也可以通过合适的机制保障它可以持续的公开和更新。
接下来是我们如何能保持知识的质量,由于区块链其实是价值的载体,它的存储成本很高,它的优势其实不在于存储成本,而是在于数据的共建和共享,如何保证知识质量是很重要的一个话题。
在知识的产生层面,知识要可以被监督,在知识质量出现问题的时候,它需要被追责,才会形成一个良性循环,让链上的数据变得质量越来越高,越来越有价值。
最后一点,如何激励知识贡献,每个人都会通过我们的系统提供知识或者为我们系统做贡献,但是其实每个人都不一定是自发性的爱好,所以需要合理的激励机制,如何权衡各方面的收益的动态平衡,同时使得激励的分发成本相对比较低,让系统良性的可循环的运作起来,也是非常重要的。
为什么会选择在2020年做这个事情?我们观察到了一些合适的机会,很多的时机已经成熟了:2020年的时候基于区块链的去中心化存储技术刚刚成熟,比如很有名的项目Filecoin,可以借助0知识证明,以极低的管理成本组织超大规模的防篡改可共享的开放存储资源;2020年数据标注这个行业也迎来了一个大的爆发,预计2025年会达到100亿左右的人民币规模,同时会促进大量的年轻的就业人口涌入,为这个行业提供丰富的知识贡献和知识质检人才;2020年,DeFi这个概念迎来了空前的发展,可以更好的帮助解决线上的激励动态分配的问题,同时让数字货币的激励手段变得更加灵活;社会对数字货币的接受程度越来越高,越来越接受激励的合理性的概念。
EpiK构建超大规模知识图谱的解决方案
基于上面的考虑,诞生了EPIK PROTOCOL,EPIK指的是EpigraphyKnowledge,翻译过来就是铭刻在石头上的知识,代表着进入区块链上的知识,就像铭刻在石头上一样,不可以被随意的篡改,目的是依托区块链技术,构建人类永恒知识库,从而开拓AI的学识。针对前面提出的问题,提出三大解决方案。
第一点,要借助去中心化的存储技术,来解决数据的不可篡改问题,就是这样的数据是不可以被随意篡改的,这些知识不会因为私人的利益而随意篡改的,从而实现知识在全国各地永恒存储得以广泛传播。
第二点,借助去中心化自治组织解决劳动力问题,实现各国各界各族人民去中心化协作中公平获益。
第三点,借助通证经济解决自驱力问题,实现生态中各个成员为追求自身利益最大化,从而无形中推动知识图谱数据壮大的过程。
Epik技术架构,分为三大模块,知识提取、知识存储、知识应用,由低到高的三个层级,里面包含了很多的技术细节。
Epik生态参与者包含五个角色:持币用户、数据矿工、领域专家、赏金猎人、数据网关。把这些角色按照数据从生产到存储到使用这三个过程,数据产生的团体包含三种角色,一个是核心用户,一个是领域专家和赏金猎人,核心用户是可以通过投票来票选出领域专家,确保领域专家的权威性和专业性,领域专家是一个非常核心的的人物,负责组织生产各个类目的人类知识库数据,由于整个工作是非常劳动密集型的工作,所以涉及到大量的繁杂的数据纠错和清洗的工作,数据专家是无法完成的,他需要把这些任务拆分出来,发布到平台上,由赏金猎人认领,他的目的就是为了完成领域专家发布的任务,同时获得对应的奖励。
经过领域专家发布任务,把数据梳理和清洗出来以后,通过领域专家上传给数据矿工上,就是底层的存储机制上,这里面有数以万计的数据矿工来共同维持着整个平台数据的不可篡改和确权。
数据从产生到存储下来,可能涉及到应用的环节,上面会有很多应用的生态,如何方便的访问这些数据,就引入了第五个角色,就是数据网关,它的作用就是为整个底层的数据存储提供数据访问和数据索引的服务,为上层的应用层赋能,让上层的应用层更好的使用整个平台存储的数据。
上面说到的两个图偏概念化,下面举一个具体的例子,如何实现商业闭环,这就是一个具像化的图。
首先可以看到上面已经标注了一些角色了,领域专家,数据网关等等,领域专家是行业专家和领域达人,目的是梳理数据格式,组织数据生产和验收数据质量,其处理的数据都是自己所在该领域的公开的数据源,比如说公开的企业信息,公开的教材信息等等,当他把这两个数据源梳理的格式定好了,所要处理的数据任务发到去中心化的平台上,赏金猎人就可以在这个平台上认领任务,他的角色一般是大学生、青年白领等等,有一定的空闲时间,有一定的知识储备和使用工具素养的一些人,他们可以领取众包任务,同时对这些数据进行校对,获取一定的收益。
数据按照我们所需要的格式和质量生产好以后,由领域专家提供给矿工,矿工就是底层的分布式存储节点,由于我们的数据存储比较定向化,都是针对知识领域的,所以对数据存储的要求能力都不是很高,可能要求这些服务器八核16G,250G的ssd固态硬盘,5兆的带宽就可以满足。数据存储了以后,上层会有很多的应用,会访问我们的数据,因为我们的数据很有价值,因为我们整理了公开的企业信息,原题库整理了教材信息,这两种信息对他们来说都是非常有用的,同时我们可以看到上层知识的应用场景都有很大的规模,就是证明我们所服务的市场增长潜力和空间是巨大的,也可以保障整个项目的快速发展。
他们可以通过数据网关很好的访问我们平台上存储的知识和数据,从而实现更多的商业化应用,为整个知识的变现提供价值。
这个系统为什么会很好运作起来?这里面就有一个区块链行业的概念,叫做通证经济,就是我们希望设计合理的通证经济,每个人提供贡献在里面都会有对应的收益,比如领域专家每天会有5880元人民币的收益,可能每个月的收益足够他养活10到20人的小团队,持续的做这个事情。赏金猎人都是小镇青年和白领时间比较零散化的一类人,他们是时薪的方式,可能达到每小时36块钱,完成任务就可以领取这部分的收益。矿工,大概会有30元每台节点一天的收益。最后底层的应用场景,用户想要使用数据是需要去耗费一定的资源的,这是给整个系统注入能量的一个过程,他们需要大概抵押每天是202块钱人民币左右的积分,就可以获得1GB数据的访问权,可以随时的赎回,这形成了商业闭环。
接下来看一下整个项目的路线图:第一阶段是我们已经完成的,如白皮书测试发布,测试网方尖碑发布,到白皮书发布,测试网预挖计划发布,领域专家招募计划启动,都已经完成了,第二阶段是主网v1.0罗塞塔发布,还有《治理白皮书》发布和知识众包产品1.0发布,到今年的二三季度,就会发布主网v2.0,引入重要的概念就是以太坊,EVM虚拟机,同时去中心化治理平台发布和知识众包产品2.0发布。
顺便提一下,为什么引入EVM信息?这可以很便捷或者0成本的把以太坊上的经济或者去中心化的Eth经济资源引入到知识生态系统中。比如用户想访问我们链上的数据,但是没有链上积分怎么办,就可以通过抵押其他的资产,来获得数据地访问,这样可以快速扩大用户规模,这只是其中的一个应用。
我们将EpiK使命描述为:这将是一场至少延续50年的碳基生命向硅基生命的史诗级布道。这是一个非常长期的赛道,而且Epik也会持续的给这个系统赋能和迭代,让越来越多的用户很好的贡献知识和使用知识。
游戏化数据标注平台即将发布
在这分享一下关于游戏化的数据标注平台产品的一些思考,为大家展现一下未来普通人怎么样能很轻松的参与到EpiK知识图谱构建体系中,来为系统提供自己的知识,从而获取收益。
游戏现在是让整个互联网消耗用户时长非常多的一个领域。这里有一组数据:2004年—2010年《魔兽世界》这个游戏所有玩家的小时数加一起约等于593万年,这个基本上比人类文明的历史还长了,平均玩家每周在虚拟世界里要花调17—22个小时,这基本上相当于上班时间的50%了。
而全球最好的图片数据集,已经有100万张是已经标注的图片。它的图片总数是可能过千万的,但是100万张是带标注的。如果每一张图片的标注成本是5分钟,那其实只需要《魔兽世界》这个游戏六十万分之一的工作量就可以完成了。所以说其实游戏是一个特别值得我们去思考的东西。
游戏化其实就是把游戏的一些常见的设计思路运作到一些非游戏的领域,比如在线教育、比如一些公益类的项目或者是一些产品设计当中去。
举个例子:支付宝的蚂蚁森林和蚂蚁庄园,蚂蚁森林的累计用户应该是有5.5个亿了。因为这是公益项目,用户可以根据能量换成植的真树,相当于这个蚂蚁森林种下了1.22亿颗真的树。蚂蚁庄园的累计用户有4亿,送出了150亿个鸡蛋,这两个项目其实都是一个游戏化的公益项目,但却增加支付宝的活跃度,增加支付宝的黏性,以及拓展支付宝的社交关系链。其实这是一个商业和公益上都双赢的很大体量的项目,虽然它看起来只是一个小游戏。
另外还有一个很好的例子,是一个在台湾的工作室Fourdesire,这个工作室专门喜欢去做这类游戏化的产品。比如说其中有一个叫《记账城市》,《记账城市》是鼓励用户每天去记账,因为记账是一个很枯燥的事情,它用一个用户不断地记账就能换取一些积分,这些积分就能发展用户自己的城市,这个城市里面还有很多好玩的一些小的游戏化的一些特性,这样的话就让挺多人喜欢上记账了,成为一个养成性的存在。
这些游戏类的APP有一个共同的特点,它原本是把一些很枯燥的东西、很枯燥的一些任务包装成一个游戏的壳,用户就能逐渐地沉迷其中了。而且这个工作室最终也获得了一个流量上非常不错的表现,这是一个二三十人的工作室,但是他在全球累计获取了超过2500万的用户,而且《记账城市》经常会被推荐上APP Store首页。
游戏的核心体验是什么?简单总结为四点,第一个就是积分等级成长体验,就是用户长期持续地完成任务会得到这种积分、奖励、等级提升,像《记账城市》就是这个城市逐渐地发展壮大,像《太空冒险》就是你可能去了更远的星球,这样是一个积分等级成长的体验。
另外,游戏当中沉迷的另外一个元素就是它有故事和情感体验,比如说游戏的《使命召唤》里面会有那种战友的剧情,用户就能沉浸其中并能情感投射。包括蚂蚁庄园那只很可爱的小鸡,我们经常看到在朋友圈里很多用户其实会觉得自己的小鸡好久没有喂食了,他其实会产生一种愧疚感,这些东西其实都是这个产品打造出来的优良的情感体验。
还有一个比较重要的是游戏能够有一个成瘾性和进入感也是因为它有即时反馈体验,当用户完成某一个任务之后是有明显的反馈体验设计的。比如说在打篮球的时候当我们去投中一颗篮球的时候,它会擦中那个篮网发出一个声音,这个其实就是一个即时的反馈。比如说我们打FPS类游戏如果是爆头屏幕中间会出现巨大的一个图标提示,这个就是一个即时反馈体验。
最后,社会性互动体验,比如说我们可以跟好友之间一起互动,当年风靡一时的Social game比如说偷菜其实就是借助游戏本身实现人与人之间的互动,这个互动充满了一些很小的暧昧或者说隐含表达性一些东西,这其实是玩家们都很喜欢的。
我们的尝试探索是这样的,第一就是我们觉得数据标注这个业务跟游戏化其实是可以放在一起的。为什么说我们觉得数据标注这个业务跟游戏化是比较适合放在一起的?
其实就是因为第一标注这个任务本身是枯燥重复的,另外,我们也是希望用户在碎片化的时间里能够去进行数据标注的。
假如这个时候我们有一个标注任务是口腔医学相关这个领域的,比如说口呼吸是否会导致下颌收缩,这个东西其实一般的用户是无法去标注的,如果是医生他又很忙,他平时又有大量主业的工作。如果我们能把这样类似于数据标注的业务,在医生这个全国大概只有14万左右人的群体里面,去把它用碎片化的方式拆解成任务,并用游戏化的方式去鼓励用户收集,那么可能这个标注任务就能更好地执行。
为此,我们期待做出这样一个体验的产品,第一它有流畅的标注体验的,这需要有强大的算法支持,能够智能地分配标注任务。第二,我们肯定要尝试不同的游戏化的场景设计,赋予用户这个故事与世界观。
另外,我们要把一些游戏化的元素融入进来,比如我们做随机的抽卡或者成长体系这样的东西,让这个游戏能够具备一个基本的可玩性。
先说下流畅的数据交互,我们现在认为大部分的数据标注任务其实上下文无关的,就是标一个任务和标下一个任务之间是没有太强的关系的。因此,就可以把一些大的任务拆解,拆解之后就可以分发给合适的一些人,比如,我们会发布让用户朗读句子五遍的任务,用户对着这个把这句话朗读出来,满五遍之后这个任务自动提交了,然后用户就能获取相应的一些积分,然后这些积分可以拿来在游戏里做一些好玩的东西。
在游戏场景我们希望讲一个故事,这个故事中可能是某一种浩劫人类文明现在已经被摧毁了,那么我们在这个基础上怎么重启人类文明?在这个主线中,我们要不断地派遣探险队出去探险,去找到过往历史中的一些科技遗迹,然后去升级我们的一些建筑。比如说原本给人类提供能源的是火堆,通过反复的派遣探险队我们最终能变成蒸汽发电站,变完蒸汽发电站之后我们可能会变成核聚变发电站。这样也带着我们重塑一遍人类的科技文明史,带着我们的玩家能够体验到一种带着人类文明从蛮荒的时代走向农业时代、走向蒸汽时代、工业文明包括现在的人工智能未来,未来可能走向太空时代。
但是这件事情其实本身是很难的,我们认为未来的工作难点是:第一,我们的数据标注任务的推荐系统设计,潜在的问题也会非常地多。比如说我们的标注任务怎么能够实时的生成、怎么能够实时的分发,当然还要考虑用户的专业性门槛和反作弊。第二,不同于专业性人员的标注,我们是有员工雇佣的。大家的工作场合是安静的,我们用户的使用场景可能是在地铁上、可能是在上班的闲暇时间、可能是家里。这样的话什么样的人在什么场景下获取什么样的任务能保证我们较好的数据质量,这也是一个问题。第三,多用户提交的时候我们整个标数据的质性度的问题;第四,怎么合理地激励每一个用户,使用户贡献量和激励平衡。整个这一系列的东西都是我们要长期去解决的问题;第五,真正好玩的、用户周期很长、高黏性的一个前端游戏化是怎么实现的,这个也需要逐步探索。比如说什么样的玩法用户喜欢,我们是做一个成长积分不断增长的游戏更好,还是做一个自我挑战的游戏更好,还是单纯只是把一点游戏化的元素融入到移动APP的标注当中就可以,怎么能够避免用户觉得有新鲜感之后就厌烦,或者我们能不能频繁更换主题,这些东西都是未来我们在前端上需要探索的地方。
㈣ 以太坊虚拟机(EVM)是什么
以太坊是一个可编程的区块链。与比特币不同,以太坊并没有给用户提供一组预定义的操作(比如比特币交易),而是允许用户创建他们自己的操作,这些操作可以任意复杂。这样,以太坊成为了多种不同类型去中心化区块链的平台,包括但是不限于密码学货币。
EVM为以太坊虚拟机。以太坊底层通过EVM模块支持智能合约的执行和调用,调用时根据合约的地址获取到代码,生成具体的执行环境,然后将代码载入到EVM虚拟机中运行。通常目前开发智能合约的高级语言为Solidity,在利用solidity实现智能合约逻辑后,通过编译器编译成元数据(字节码)最后发布到以坊上。
EVM架构概述
EVM本质上是一个堆栈机器,它最直接的的功能是执行智能合约,根据官方给出的设计原理,EVM的主要的设计目标为如下几点:
简单性
确定性
空间节省
为区块链服务
安全性保证
便于优化
针对以上几点通过对EVM源代码的阅读来了解其具体的设计思想和工程实用性。
EVM存储系统机器位宽
EVM机器位宽为256位,即32个字节,256位机器字宽不同于我们经常见到主流的64位的机器字宽,这就标明EVM设计上将考虑一套自己的关于操作,数据,逻辑控制的指令编码。目前主流的处理器原生的支持的计算数据类型有:8bits整数,16bits整数,32bits整数,64bits整数。一般情况下宽字节的计算将更加的快一些,因为它可能包含更多的指令被一次性加载到pc寄存器中,同时伴有内存访问次数的减少。目前在X86的架构中8bits的计算并不是完全的支持(除法和乘法),但基本的数学运算大概在几个时钟周期内就能完成,也就是说主流的字节宽度基本上处理器能够原生的支持,那为什么EVM要采用256位的字宽。主要从以下两个方面考虑:
时间,智能合约是否能执行得更快
空间,这样是否整体字节码的大小会有所减少
gas成本
时间上主要体现在执行的效率上,我们以两个整型数相加来对比具体的操作时间消耗。32bits相加的X86
的汇编代码
mov eax, dword [9876ABCD] //将地址9876ABCD中的32位数据放入eax数据寄存器
add eax, dword [1234DCBA] //将1234DCBA地址指向32位数和eax相加,结果保存在eax中
64bits相加的X86汇编代码
mov rax, qword [123456789ABCDEF1] //将地址指向的64位数据放入64位寄存器
add rax, qword [1020304050607080] //计算相加的结果并将结果放入到64位寄存器中
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。