EOS DApp开发入门(二): 智能合约探究

Previously

EOS DApp开发入门(一)中,经过docker image的方式架起了本地的eos区块链,使Note chain DApp与本地区块链进行交互,成功运行起来。(boiler plateios

clipboard.png

在看启动eosio脚本输出的时候,发现了这两样输出:设置account和智能合约,以及安装eosio.CDT(合约开发工具)。就去查了一下。git

eos的帐户

EOS 中,账户(account)是存储在区块链上的受权集合,用于标识发送者 / 接受者。github

EOS 中的受权结构很是灵活,也很是复杂,简单来讲,就是一个受权,既能够由一我的拥有,也能够由一组我的拥有,具体取决于如何配置权限。docker

咱们甚至能够说,任何人,想要在 EOS 上作一些事情,他必须先有一个帐户,才能向区块链发送或接收有效的交易。segmentfault

因此要使用eos区块链,得先设置帐户。框架

合约开发工具

EOSIO.CDT是WebAssembly(WASM)的工具链和一组工具,用于促进EOSIO平台的合同编写。除了做为通用WebAssembly工具链以外,还可使用EOSIO特定的优化来支持构建EOSIO智能合约。这个新工具链是围绕Clang 7构建的,这意味着EOSIO.CDT具备最新的LLVM优化和分析,但因为WASM目标仍被认为是实验性的,所以某些优化不可用或不完整。工具

关于智能合约的细节,打算对照当前v1.4.2版的源码来学习,一方面能够确保信息是第一手的,不会出现参考旧版的解读文章,致使以讹传讹,更重要的是能够借此机会好好学习C++工程项目(源码在此:https://github.com/EOSIO/eos)学习

合约的主要组成

clipboard.png

  1. eosio.bios: 合约用于管理链上的堆栈和非堆栈资源,经过确认用户持有的 token 控制资源分配,包括带宽、CPU 以及内存资源。
  2. eosio.msig: 多用户签名和用户权限管理合约。
  3. eosio.sudo: 实现了建立EOS系统中root帐户的功能,用于修改系统代码与更新合约。
  4. eosio.system: 系统智能合约,能够进行不少系统级别的操做,好比用户投票、将用户注册成为生产者。
  5. eosio.token: 代币合约,只要加载这个合约,就能够轻松的发行一个代币。

今天先看eosio.system,按github里的说明,eosio.system这个合约可让用户抵押Token(eos代币)、设置和投票给区块生产者(好比eos公链上的生产者就须要投票来获取超级节点的资格,成功成为21个活跃超级节点后,才有资格生产新区块)。区块链

eosio.system

【跟着源码学】EOS智能合约之eosio.system - part1
part2 - eosio.system整理解读开发工具

参考

EOS源码框架剖析

相关文章
相关标签/搜索