token是唯一的吗,token是钱包吗

  

     

  

  免责声明:本文不构成任何投资建议。   

  

  边肖:记得要集中注意力!   

  

  EOS里只存了私钥,钱包有密码。您需要输入密码来解锁钱包并读取私钥。   

  

     

  

  1、钱包、账户与权限   

  

  EOS里只存了私钥,钱包有密码。您需要输入密码来解锁钱包并读取私钥。账户里有EOS令牌和智能合约。如果您需要转移EOS令牌或执行智能合约,您需要钱包中相应的私钥来打开这个保险箱。   

  

  回想一下创建帐户的过程:   

  

  创建wallet创建两个密钥对导入私钥到wallet创建账户Create account命令如下:Cleos创建账户创建者姓名所有者Key Options表示相关选项,creator表示为此创建动作支付eos的账户,即创建者;Name表示新创建的帐户名;OwnerKey和ActiveKey代表两个不同权限的公钥。OwnerKey权限是账户的最高权限,其他权限可以修改。ActiveKey权限默认可以用来转账,但是不能修改。而智能合约都是在账户中执行的,所以账户名其实就是EOS世界中以太坊的地址。与以太坊不同的是,EOS的帐户名不再是一串很长的地址,而是一个英文字母数字(12345)符号(。)可以定制。最长12位,最短1位,全球唯一,先到先得。不同的长度需要不同的EOS进行注册。借用一张图片来表示这些关系   

  

     

  

  2、EOS 系统资源   

  

  EOS是企业操作系统(Enterprise Operation System)的缩写,它的目标是区块链世界中的操作系统,所以有些概念和传统操作系统类似,其中计算机中的运行内存可以看作EOS中的RAM硬盘可以对EOS区块链数据库进行基准测试。   

  

  EOS有三种资源:CPU、NET(网络带宽)和RAM(内存)。而CPU NET需要临时抵押EOS才能获得,类似于交押金。不用的话可以兑换EOS。RAM只能用EOS直接购买,使用过程中会有消耗。   

  

  具有高访问权限的数据,如账户余额、智能合约的当前状态等。会存储在RAM中,这部分数据会长期占用RAM;但是,低流量的数据,如交易数据,会存储在EOS系统的硬盘中,即区块链中。RAM不足时,无法进行相关操作,如调拨、调配合同等。   

  

  目前最消耗RAM的场景是EOS钱包的开户,其次是转账和一些应用内操作,因为EOS账户不自由,需要消耗RAM。   

  

  3、什么是 WebAssembly   

  

  WebAssembly是除了JavaScript之外的另一种可以在浏览器中执行的编程语言。这是一个关于面向Web的通用二进制和文本格式的项目,由几家大公司赞助,如Google、Microsoft、Mozilla、Apple等。   

  

  WebAssembly是一种新的字节码格式。它的缩写是。wasm还有。wasm是文件名的后缀,这是一种新的底层安全二进制语法。它被定义为“紧凑的格式和加载时间短的执行模型”,被设计为Web多编程语言的目标文件格式。这意味着浏览器的性能将得到极大的提升,也使我们能够实现一套底层的构建块,比如强类型和块级范围。   

  

  然而,这并不意味着WebAssmbly的诞生就是为了取代JavaScript。正如Bjarne Stroustup所说,“JS会活得很好,因为世界上只有两种类型的语言:一种是人们不断使用的语言,另一种是根本不用的语言!”Eric Elliott认为,“最好不要把WebAssembly仅仅看作一种编程语言,实际上它更像一个编译器。”   

  

  WebAssembly不仅是wasm格式,还有wast格式。这两种格式是等效的。最大的区别是wast是可读的文本格式,而wasm是二进制格式。它们可以通过工具相互转换。   

  

  我上一个hello合约,其中一个步骤是生成两个文件,Hello.wasm和hello.wast,你可以看看这两个文件的内容。还有,如果你浏览过eos合同目录,你会看到很多。wasm和。浪费文件。   

  

  4、什么是 ABI   

  

  ABI是应用二进制接口的缩写,来源于   

区块链外部与合约进行交互,以及合约与合约之间进行交互的一种标准方式。它定义了函数签名、参数编码、返回结果编码等的规则。当合约被编译后,那么它的 ABI 也就确定了。

  

EOS中 ABI 的作用也和以太坊中大致类似,它定义了函数被调用的规则;定义了参数在调用者和被调用者之间是如何传递的。

  

5、合约核心概念

  

1、action 与 transaction 的区别和联系。

  

action 是一个动作,账户和合约交互是通过 action 进行的,可以单独发送一个 action。每个action代表一条合约条款,实现了条款中的具体规则。

  

transaction 是一个或几个 action 组成的原子性操作,类似于传统环境下的事务。所有 action 全部成功,该 transaction 才会成功。

  

action 的执行环境被称为 action 上下文,action 上下文提供了执行 action 所需的一些条件,其中一个就是 action 的工作内存,这是 action 保存工作状态的地方。

  

在处理一个 action 之前,系统会先为它清理一次内存,因此当变量在一个 action 中被赋值后,另一个 action 的上下文是拿不到这个值的。在 action 之间传递状态的唯一方法就是把它持久存储到 EOS 数据库中。

  

2、合约之间的交互模式合约之间有两种交互模式,即内联和延迟。

  

内联,意思就是直接采用内部函数体发起,调用其他函数的方式。这可以保证交易无阻碍执行,不必通知外部失败或者成功结果,同时内联也可保证交易始终处于同一作用域以及权限。

  

延迟,通过生产者的判定来决定延后按时执行,可能会发生超时的问题,但是这种方式可以跨多个作用域工作,并且可以携带着发送给它的合约权限。

  

3、合约之间数据传递智能合约之间通过 action 和共享数据文件来进行交互。

  

原标题:精通EOS:智能合约常见概念梳理

  

文章来源:区小白

相关文章