EOS 智能合约源代码解读 (1)总体说明
1. 基本定义
在eos私有节点操作中,我们通常是一个合约对应一个合约账户,并且一个账户中只能部署一个智能合约。如果在同一个账户部署多个合约,那么最后部署的合约会覆盖掉之前的合约。每个帐户都至少链接到一个公钥,而这个公钥又链接到钱包里面的一个私钥。
2. EOS源代码合约
2.1 eosio.token合约: 负责发现币种
2.2 eosio. msig提案合约
提案合约同样也是cleos multisig命令调用的系统合约,可用于提案、通过/不通提案、执行多重签名交易和用户权限管理用的。每一笔Transaction都会被相应的用户用其密钥签名发布,多重签名即Transaction被多个人签名后才可以发布成功。
2.3 eosio.system
是EOS的智能合约,eos三个核心功能:
- 用户抵押token,可以投票给区块生成者(block producer),就是目前竞争火热的21个超级节点,还有获得社区提案(worker proposal)的权利。
- 设置代理,把投票权移交给其他用户。
- 抵押token,获得相应的网络带宽,存储空间,运算能力
2.4 eosio.boot合约:用来激活 Activates a protocol feature
2.5 eosio.bios合约 Basic Input/Output System 基本输入输出系统
bios 合约就是让我们能进行最底层的操作的合约,其它合约的运行建立在 bios 合约的基础之上,所以我们先来加载 bios 合约
如果把 EOS 或者说 nodeos 看做一个操作系统, bios 合约看做启动计算式时按 F8 就能进入的 bios 系统就可以了。这东西必不可少,软件的运行建立在这个基础上,但我们一般情况下不用去管它,只要保证它顺利加载就行。
作用
- 可以直接控制其它账户的资源分配
- 可以使用其它需要权限的API调用
EOS 智能合约源代码解读 (1)总体说明相关推荐
- EOS 智能合约源代码解读 (11)wrap合约“action_wrapper类”
1. 功能 对于许多用例,需要从合同代码向另一个合同发送新操作.这是合同之间能够积极沟通的唯一途径.它为特定智能合约代码的特定操作创建"操作模板",然后可使用该模板来调用此操作. ...
- EOS 智能合约源代码解读 (7)合约开发示例
官方提供了一个工具eosiocpp,它可以按照固定的模板创建一个新的智能合约.eosiocpp可以创建2个合约文件(曾经是三个文件),它们仅仅包含了合约的框架. 1. HelloWorld合约代码如下 ...
- EOS 智能合约源代码解读 (10)token合约“几种关键操作”
1. create:负责创建资产 void token::create( const text_name& issuer, const asset& maximum_supply) { ...
- EOS 智能合约源代码解读 (6)合约之action
1. 动作 ( action ) 是 EOS 合约的灵魂,是 EOS 的基础组成单位 1.1 一个动作就是一个公开的 ( pubic ) 的 C++ 类的成员方法 必须使用 [[eosio::acti ...
- EOS 智能合约源代码解读 (14)system合约“exchange_state.hpp”
1. 使用bancor数学创建一个在两种资产类型中的50/50的中继 namespace eosiosystem {using eosio::asset;using eosio::symbol;typ ...
- EOS 智能合约源代码解读 (10)token合约“简介”
1. 记录用户的token,比如有哪些代币 class [[eosio::contract("eosio.token")]] token : public contract {pu ...
- EOS 智能合约源代码解读 (5)class contract
1. 所有合约的基类 #define CONTRACT class [[eosio::contract]] // 合约 #define ACTION [[eosio::action]] //动作 #d ...
- EOS 智能合约源代码解读 (3)asset.hpp
1. 合约中关于资产的数据结构的定义 输入字符串: "10.0000 CUR" 输出:amount = 10, symbol(4,"CUR") /**asset ...
- EOS 智能合约源代码解读 (9)boot合约
1. 作用 激活 protocol features 性质 activating desired protocol features prior to deploying a system contr ...
最新文章
- java 内存测试_请你说一下java jvm的内存机制
- 依图科技再破世界记录!AutoML取代人工调参,刷榜三大权威数据集
- 使用ZFS的十条理由
- c++构造函数成员初始化中赋值和初始化列表两种方式的区别
- C++Bitonic Sort双调排序/比并排序的实现算法(附完整源码)
- #error This file requires compiler and library support for the ISO C++ 2011 standard
- Spring中配置Hibernate事务的四种方式
- python3指定目录所有excel_如何用python遍历文件夹下的所有excel文件
- Linux系统文件夹权限475,linux系统中文件的特殊权限
- linux编译内核支持pam,linux编译内核make menuconfig报错解决办法
- SQL*Plus环境下创建PLUSTRACE角色
- MAC编译OpenJDK8:error: ‘‘ within ‘||‘ [-Werror,-Wlogical-op-parentheses]
- android中listview的item滑动删除效果(已解决listview点击问题)
- 5款最好用的前端开发工具
- 【CANdelaStudio编辑CDD】-0.1-如何对比两个CDD诊断描述文件
- Linux服务器远程连接
- 奶爸日记21 - 探险乐园
- 席位分配问题——惯例Q值法和d'hondt法的MATLAB程序
- 接收蓝牙信号并发送到云端服务器,蓝牙如何可以与云服务器连接
- 2016年蓝桥杯java——分小组
热门文章
- 多线程:线程之间的协作(join、wait、notify、notifyAll、await、signal、signalAll)
- 计算机英语应用研究,计算机英语辅助学习系统的研究与应用-软件工程专业论文.docx...
- 直接拖动元器件_电子元器件常规检测和判断
- 数据中心空调系统一种变风量节能控制策略
- android行高,android – GridView的行高
- ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
- 成功解决ValueError: too many values to unpack (expected 2)
- AI:2020年6月21日北京智源大会演讲分享之14:00-14:25 张铭教授《基于知识图谱的机器学习》
- HighNewTech:70后、80后、90后、95后职场人大数据调查(有趣的五个结论)——源于猎聘网
- ML之SVM:利用Js语言设计SVM算法(SMO算法+线性核/高斯核)