资讯专栏INFORMATION COLUMN

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

Honwhy / 3201人阅读

摘要:在看启动脚本输出的时候,发现了这两样输出设置和智能合约,以及安装合约开发工具。合约开发工具是的工具链和一组工具,用于促进平台的合同编写。系统智能合约,可以进行很多系统级别的操作,比如用户投票将用户注册成为生产者。

Previously

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

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

eos的账户

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

EOS 中的授权结构非常灵活,也非常复杂,简单来说,就是一个授权,既可以由一个人拥有,也可以由一组个人拥有,具体取决于如何配置权限。

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

所以要使用eos区块链,得先设置账户。

合约开发工具

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

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

合约的主要组成

eosio.bios: 合约用于管理链上的堆栈和非堆栈资源,通过确认用户持有的 token 控制资源分配,包括带宽、CPU 以及内存资源。

eosio.msig: 多用户签名和用户权限管理合约。

eosio.sudo: 实现了创建EOS系统中root账户的功能,用于修改系统代码与更新合约。

eosio.system: 系统智能合约,可以进行很多系统级别的操作,比如用户投票、将用户注册成为生产者。

eosio.token: 代币合约,只要加载这个合约,就可以轻松的发行一个代币。

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

eosio.system

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

参考

EOS源码框架剖析

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24531.html

相关文章

  • 区块链平台EOSIO开发智能合约dapp

    摘要:示例智能合约的目的是模拟选举。这告诉了智能合约中处理程序的定义。接下来的任务是创建一个新的帐户来保存选举智能合约。 这是一步步的用EOSIO开发区块链DApp的第二部分,这部分将主要是为EOSIO平台开发智能合约。 示例智能合约的目的是模拟选举。我创建了一个EOSIO用户来托管智能合约。创建了两个公民用户来投票给候选人。投票记录保存在EOSIO区块链中。在此示例中,所有操作都在命令模式...

    cuieney 评论0 收藏0
  • 使用EOSJS和scatter在EOS区块链上开发dApp

    摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。 由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么?  我们正在构建一个简单的todo...

    Mr_houzi 评论0 收藏0
  • 使用EOSJS和scatter在EOS区块链上开发dApp

    摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。 由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么?  我们正在构建一个简单的todo...

    mumumu 评论0 收藏0
  • 使用EOSJS和scatter在EOS区块链上开发dApp

    摘要:必备知识设置用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。 由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么?  我们正在构建一个简单的todo...

    xiaodao 评论0 收藏0
  • 区块链平台EOSIO开发智能合约dapp(一)

    摘要:与传统方式不同,在去中心化的网络及区块链上运行后端代码智能合约。这个博客涵盖了什么在本博客中,我将展示如何设置区块链并开发智能合约。 在我倾听Bettina Warburg的演讲之后,我对去中心化经济(dApps)的概念着迷。传统的Web应用程序是: 前端→后端→数据库 相比之下,dApp网站是: 前端→智能合约→区块链 例如,当你进入电子银行时,网页将调用后端代码来获取你的个人数据并...

    tylin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<