0.参考资料

https://github.com/EOSIO/eos/wiki

1. eos的github地址

https://github.com/EOSIO/eos

2.下载eos源码

git clone https://github.com/EOSIO/eos --recursive

3. readme.MD
  beta测试版本
  支持7种os,推荐ubuntu 16.04
  编译、运行、使用的文档参考 https://www.taohuayuangw.com github.com/EOSIO/eos/wiki

4.https://github.com/EOSIO/eos/wiki
  4.1 glossary 一些名词解释
  4.2 Setting Up A Local Environment 设置环境变量
    4.2.1 overview  
      三个可执行程序:nodeos是服务端; cleos是区块链的命令行接口和钱包管理; keosd管理eos钱包
      这三个可执行程序可以在一个单节点上部署。
      三者的关系:cleos管理nodeos和keosd;nodeos管理一个节点,通过这个节点跟整个eos网络的无数节点进行交互; keosd管理钱包。 
    4.2.2 getting the code
      git clone https://github.com/EOSIO/eos --recursive
    4.2.3 building eosio
      确保操作系统。然后运行 ./eosio_build.sh
      安装过程需要多次输入root密码。编译过程比较长。
    4.2.4 creating and launching a single node testnet
      编译完成后,启动单节点的测试网络
      cd build/programs/nodeos
      ./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --www.feifanyule.cn plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin 
      正常启动后,会不断滚动形如:
      3343000ms thread-0   producer_plugin.cpp:239       block_production_loo ]www.cnzhaotai.com  eosio generated block 408af1a5... #321 @ 2018-05-10T06:55:43.000 with 0 trxs, lib: 320
      3343502ms thread-0   producer_www.089188.cn plugin.cpp:239       block_www.ruishengks.com production_loo ] eosio generated block 464e6a30... #322 @ 2018-05-10T06:55:43.500 with 0 trxs, lib: 321
      ....
      运行关系:nodeos运行一个单producter的eosio。如果nodeos启动参数有“--plugin eosio::wallet_api_plugin”,那么它可以管理eos钱包。
    4.2.5 docker (暂时不需要)
    4.2.6 troubleshooting guide (暂时不需要)
  4.3 Programs & Tools
    4.3.1 nodeos 
      核心 eosio 守护进程,运行 eos节点。
    4.3.2 cleos
      cleos (client os)是命令行工具,跟nodeos提供 rest api接口进行交互。比如,创建链上的区块和transaction,设置区块链状态,签名,操作钱包,操作网络,向区块链发送智能合约,把区块推送到链上等等。
      命令 "build/programs/cleos$ ./cleos -h" 打印帮助信息      
    4.3.3 keosd
      eosio钱包守护进行,载入钱包插件,提供http接口和rpc api
    4.3.4 launcher
      这个进程为部署多节点eos网络提供辅助功能,在各节点之间发布配置文件,启动多节点的nodeos实例等等。
    4.3.5 snapshot
      nodejs的进程,创建crowdsale合约的snapshot,配置创始区块等等。
    4.3.6 eosiocpp
      这是一个工具,生成abi规范的c++代码。比如,命令"eosiocpp -g abi.json types.hpp"。这块有比较多的细节,暂时还不太懂。
  4.4 Public Testnet目前不可用
  4.5 Accounts & Permissions
    4.5.1 Wallets
      wallet存储若干个key。这些key跟多个account相关联。钱包有两种状态:锁,解锁。登录钱包需要密码。cleos跟keosd做命令交互管理钱包。
    4.5.2 Accounts
      把transaction提交到区块链上需要acount,account是一个拥有标志。
    4.5.3 Authorities and Permissions
      每个account有两个本地命令的授权:owner和active。owner:一个account的拥有者,只有极少数transaction需要这种授权,owner最好存放在冷存储cold storage不要让任何其他人知道。active,转移资金,投票生产者,以及一些 account的变动操作。除了这两种授权,还可以自定义授权。授权需要指定到一个或者多个public key或者有效的acount name。
    4.5.4 Putting it all Together
      本节是示例。描述如何使用account提交transaction,可以用一个账户提交,也可以多个账户提交。相当简单直接。
  4.6 CLI Wallet
    4.6.1 Overview
      keosd在本地运行,在本地存储私钥。
    4.6.2 How to run keosd
      ./keosd,配置文件目录
      然后,cleos 创建钱包,打开钱包,锁钱包,解锁钱包,向钱包导入私钥,list钱包。
      如前所述,可以用nodeos管理钱包,这样,就不需要启动keosd了,但不推荐同时使用keosd和nodes管理钱包。
      
  4.7 Cleos Command Reference
    cleos的具体用法和demo。
  4.8 Persistence API
    4.8.1 Overview
      rosio提供一组服务和接口,让智能合约的开发者实现状态持久化,这种持久话可以跨越action,transaction和boundaries。持久化包括:服务将状态持久化到数据库; 在检索数据库内容的时候,强化查询能力;智能合约开发使用的各种服务的c++接口;库和系统开发者使用的核心服务调用的c api。  
      eosio的智能合约以Actions的方式执行。Action需要一个执行环境,也就是action context。一个action context给action提供必需的资源,比如内存。action在内存里保存各种状态。在执行一个action之前,eosio先建立一个干净的工作内存。在实际情况下,并发/并行的其他的action的执行可能会改变内存里的某些变量。因此,唯一可行的方式,是把变量进行持久化,在需要的时候再从数据库读出使用。
    4.8.2 The EOSIO Multi-Index API
      eosio多索引api,为eosio数据库提供c++接口。主要是提供灵活的查询方式,让智能合约的开发者读写修改持久化状态数据。然后提供了一个demo,交通工具数据库示例。
    4.8.3 C++ API Reference
      创建table,创建index,以及各种使用方式。
  4.9 Smart Contracts
    4.9.1 Introduction to EOSIO Smart Contract
      智能合约基于WASM。WASM被google,ms,apple等多家公司支持。最成熟的wasm工具链是clang/llvm和c/c++编译器。rust,python,solidity等其他语言也有类似的工具链,但语言太简单了,性能也不够好,不推荐使用。
      智能合约的通信方式是action和共享内存。智能合约可以读取另一个智能合约的状态。一个智能合约里可以定义两种通信模型:inline和defered。inline, 可以保证当前tranction能执行action或者unwind,无论成功失败都不会有通知,inline在一个智能合约里执行。defered,以被调度执行,可以timeout,可以跨智能合约执行。
      一个transaction可以有若干个action.
      action的type是base32编码的64位整数。      
    4.9.2 Smart Contract Files
      eosiocpp工具,生成智能合约的源码文件。
    4.9.3 Debugging Smart Contracts
      智能合约在私有测试网络的本地eos节点进行调试。这里给出示例和步骤。
  4.10 Tutorials(智能合约教程)
    4.10.1 Getting Started with Smart Contracts
      启动一个单节点的私有区块链
      创建钱包
      导入一个bios智能合约
      创建account帐号
    4.10.2 Eosio.token, Exchange, and Eosio.msig Contracts
      创建一个eosio.token智能合约并部署。按照步骤执行既可。
    4.10.3 Hello World Tutorial
      用c++开发并部署一个智能合约。
    4.10.4 Comprehensive Accounts & Wallets Tutorial
      更全面的account和wallet教程
    4.10.5 Tic-Tac-Toe
      用智能合约开发一个区块链上的游戏,完整demo。
  4.11 Testnet
    4.11.1 Single Host Multi-Node (www.leyouzxgw.com Private) Testnet
      测试网络,在一台主机上部署多个节点。
  4.12 Releases
      各版本信息。

[blockchain-035]eos的部署安装智能合约的更多相关文章

  1. 区块链学习(四)truffle部署编译智能合约以太坊私有链

    前面我们介绍了以太坊私有链的搭建以及多节点私有链网络,这次我们介绍如何使用truffle框架来部署编译智能合约到我们之前搭建的私有链网络中. 搭建环境及需使用的工具:ubuntu18.04  Truf ...

  2. EOS Dawn 3.0 智能合约 -- 新格式

    1.简介 随着EOS Dawn 3.0发布,智能合约的坑又要重新踩了o(╥﹏╥)o:3.0不仅将原来本身就在链里的基础合约独立出来,简单的介绍见3.0合约改变,合约的书写方式也有巨大变化,相比之前更加 ...

  3. 生产环境手把手部署ERC20智能合约

    工具 rimex http://remix.ethereum.org/ metamask https://metamask.io/ ERC20 代码 https://github.com/OpenZe ...

  4. 【精解】EOS智能合约演练

    EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过 ...

  5. eosio.cdt:EOS智能合约工具集

    目前EOS已经迎来了1.5.x时代,很多内容都有了较大的改变.其中智能合约的工作流程发生了改变,EOSIO为智能合约提供了独立且功能完整的工具集eosio.cdt.该工具集基于WASM平台,可解耦于e ...

  6. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约

    文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...

  7. 使用Truffle 部署智能合约

    使用Truffle 部署智能合约 之前我们使用Geth,原生的以太坊Golang工具,分析了创世区块的参数内容,在本地创建了私有以太坊区块链,并使用两个账户进行了挖矿和转账操作,对以太坊有了基本了解. ...

  8. 【精】EOS智能合约:system系统合约源码分析

    系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.syst ...

  9. 如何在Etherscan.io 部署ETH以太坊智能合约 如何在15分钟内创建你的加密货币

    一.概述 ETH 网络这里就不介绍了,这篇文章主要记录在以太坊主网和测试网络部署一个智能合约,也就是如何发币. 二.部署合约需要的生产工具      准备工具前,建议大家准备个VPN,因为会访问国外网 ...

随机推荐

  1. lintcode_177_把排序数组转换为高度最小的二叉搜索树

    把排序数组转换为高度最小的二叉搜索树   描述 笔记 数据 评测 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 注意事项 There may exist multiple vali ...

  2. JAVA / MySql 编程——第五章 事务、视图、索引、备份和恢复

    1.事务(Transaction): 事务是将一系列数据操作绑成一个整体进行统一管理. 如果一事务执行成功,则咋子该事务中进行的所有数据更改均会提交,称为数据库中的永久成部分. 如果事务执行是遇到错误 ...

  3. 封装动态数组类Array

    功能: 1.增.删.改.查 2.扩容.缩容 3.复杂度分析 4.均摊复杂度 5.复杂度震荡 分析动态数组的时间复杂度: 分析resize的时间复杂度: public class Array<E& ...

  4. 海龟绘图turtle模块的使用

    在本章中,我们将编写简短的.简单的程序来创建漂亮的.复杂的视觉效果.为了做到这一点,我们可以使用海龟作图软件.在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一 ...

  5. 什么是web语义化?

    Web语义化:是指使用语义恰当的标签,使页面有良好的结构,页面元素更有含义,能够让人和搜索引擎都容易理解.使团队项目的可持续运作及维护,去掉样式后页面呈现清晰的结构. 例如:<table> ...

  6. c#常用数据结构解析【转载】

    引用:http://blog.csdn.net/suifcd/article/details/42869341 前言:可能去过小匹夫博客的盆油们读过这篇对于数据结构的总结,但是小匹夫当时写那篇文章的时 ...

  7. 【Effective C++ 读书笔记】导读 Introduction

    学习程序语言根本大法是一回事,学习如何以某种语言设计并实现高效程序则是另一回事. 一组明智选择并精心设计的classes.functions.templates可使程序编写容易.直观.高效.并且远离错 ...

  8. tcl之string操作-length/index/range/replace

  9. C语言进阶——浮点数的秘密03

    浮点数在内存中的储存方式为:符号位 指数位 尾数 float和double类型的数据在计算机内部的表实方法是一样的,但是由于所占的存贮空间的不同,其分别能表示的数值范围和精度不同. 类型 f符号位 指 ...

  10. [Bzoj2282]消防(二分答案+树的直径)

    Description 某个国家有n个城市,这n个城市中任意两个都连通且有唯一一条路径,每条连通两个城市的道路的长度为zi(zi<=1000). 这个国家的人对火焰有超越宇宙的热情,所以这个国家 ...