精华内容
下载资源
问答
  • 普元EOS开发入门

    2018-08-30 10:27:22
    开发必备部分,重点介绍数据区、数据流、数据类型和数据区中的结构、以及数据映射的原理,这一部分先给他们一点概念,可订不会完全理解的,然后再开发的各部分再去加强认识。
  • 普元EOS开发帮助手册

    2018-06-13 18:41:21
    普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册
  • 普元EOS开发平台

    2017-03-22 13:41:28
    Primeton EOS® Platform基于JaveEE、Eclipse等开放的技术和平台,采用了先进的SOA架构和标准规范,并通过构件化、图形化、一体化的平台产品为客户提供了完整的覆盖SOA应用全生命周期的支撑,从设计、开发、调试和...
  • EOS开发部署大全

    2018-11-28 10:12:50
    本人EOS从0实战爬坑的部署大全,基本上涵盖常见的issues和解决方案
  • EOS开发资源汇总

    2019-01-19 18:03:57
    EOS开发资源总结,包含相关库地址,教程地址等等,帮助开发者快速上手
  • EOS开发教程

    2017-10-13 10:11:53
    EOS Platform_7.0_GA基于J2EE、Eclipse等开放的技术和平台,通过配置化、组件 化、图形化、一体化的平台产品为客户提供完整的覆盖应用全生命周期的支撑,可以真正意 义上帮助企业客户和各类机构实现其统一 SOA架构的...
  • 普元EOS开发API ver7.2

    2016-01-31 16:31:46
    普元开发文档,对整个普元脉络架构还是比较清晰的
  • 目前在一家公司实习,公司用的就是普元EOS开发,一种之前没有见过的java框架,全新的设计理念,刚开始学习也是很不适应,也有很多东西也不理解,从网上找一些教程和博客的资源也比较少,所以我就记录一下自己学习...

           目前在一家公司实习,公司用的就是普元EOS开发,一种之前没有见过的java框架,全新的设计理念,刚开始学习也是很不适应,也有很多东西也不理解,从网上找一些教程和博客的资源也比较少,所以我就记录一下自己学习普元的经验,近期都会不间断更新。
           我想先展示一下普元自带的一些前端框架,普元有两个版本,一个是richWEB,一个是NUI,NUI版本可以调用普元的一些集成的应用于表单的一些控件,下面展示一下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8" session="false" %>
    <%@include file="/common/common.jsp"%>
    <%@include file="/common/skins/skin0/component.jsp"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <!-- 
      - Author(s): admin
      - Date: 2021-03-15 10:09:05
      - Description:
    -->
    <head>
    <title>表单控件</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <script src="<%= request.getContextPath() %>/common/nui/nui.js" type="text/javascript"></script>
      
    </head>
    <body>
      <h4>Only Text</h4>
        <a class="nui-button" onclick="onClick" enabled="false" >增加</a>
        <a class="nui-button" onclick="onClick" >修改</a>
     
        <h4>Text and Icon</h4>
        <a class="nui-button" iconCls="icon-add" onclick="onClick" >增加</a>
        <a class="nui-button nui-button-iconRight" iconCls="icon-edit" onclick="onClick" >修改</a>
     
        <h4>Only Icon</h4>
        <a class="nui-button" iconCls="icon-add" onclick="onClick"></a>
        <a class="nui-button" iconCls="icon-edit" onclick="onClick"></a>
     
        <h4>Plain</h4>
        <a class="nui-button" plain="false" iconCls="icon-add" onclick="onClick">增加</a>
        <a class="nui-button" plain="true" iconCls="icon-edit" onclick="onClick">修改</a>
        <a class="nui-button" plain="true" iconCls="icon-remove" onclick="onClick">删除</a>
     
        <h4>Icon Position</h4>
        <a class="nui-button nui-button-iconTop" iconCls="icon-add" onclick="onClick" >增加</a>
        <a class="nui-button nui-button-iconTop" iconCls="icon-edit" onclick="onClick" >修改</a>
     
        <h4>A Link</h4>
        <a class="nui-button" href="http://www.google.com">Google</a>
        <a class="nui-button" href="http://www.baidu.com">Baidu</a>
         <h4>菜单按钮</h4>
        <a class="nui-menubutton" menu="#popupMenu" >选择...</a>
     
        <ul id="popupMenu" class="nui-menu" style="display:none;">
            <li>
                <span >操作</span>
                <ul>
                    <li iconCls="icon-new" onclick="onItemClick">新建</li>
                    <li class="separator"></li>
                    <li iconCls="icon-add" onclick="onItemClick">增加</li>
                    <li iconCls="icon-edit" onclick="onItemClick">修改</li>
                    <li iconCls="icon-remove" onclick="onItemClick">删除</li>
                    
                </ul>
            </li>
            <li class="separator"></li>
            <li iconCls="icon-open" >打开</li>
            <li iconCls="icon-remove" >关闭</li>
        </ul>
           <h4>工具栏按钮</h4>
        <div class="nui-toolbar">
        <a class="nui-button" iconCls="icon-add">增加</a>
        <a class="nui-button" iconCls="icon-edit">修改</a>
        <a class="nui-button" iconCls="icon-remove">删除</a>
        <span class="separator"></span>
        <a class="nui-button" plain="true">增加</a>
        <a class="nui-button" plain="true">修改</a>
        <a class="nui-button" plain="true">删除</a>
        <span class="separator"></span>
        <input class="nui-textbox" />
        <a class="nui-button" plain="true">查询</a>
    </div>
     <h4>文本输入框</h4>
    单行输入框:<input class="nui-textbox" value="0" /> <br /><br />
    密码输入框:<input class="nui-password" value="12345"  /> <br /><br />
    多行输入框:<input class="nui-textarea" value="中国"  /> <br />
     <h4>下拉选择框</h4>
     <input id="combo1" class="nui-combobox" style="width:150px;" textField="text" valueField="id"
        url="../data/countrys.txt" dataField=countrys value="cn" showNullItem="true" />
     <h4>多选 + 多列</h4>
    <div class="nui-combobox" style="width:300px;"  popupWidth="300" textField="text" valueField="id"
        url="../data/countrys.txt" dataField=countrys value="cn,usa" multiSelect="true"  >
        <div property="columns">
            <div header="ID" field="id"></div>
            <div header="国家" field="text"></div>
        </div>
    </div><br>
    <h4>联动选择:ComboBox</h4>
    <span>部门</span><br />
    <input id="deptCombo" class="nui-combobox" style="width:150px;" textField="name" valueField="id"
        onvaluechanged="onDeptChanged" url="org.gocom.components.nui.demo.newdataset.impl.TDepartment.getDepartment.biz.ext"
        dataField="department" showNullItem="true"
            />
    <br /><br />
    <span>职位</span><br />
    <input id="positionCombo" class="nui-combobox" style="width:150px;" textField="name" valueField="id" />
    
    <h4>日期选择框</h4>
    <input id="date1" class="nui-datepicker"  />
    <input id="date2" class="nui-datepicker" style="width:200px;" format="yyyy-MM-dd H:mm" showTime="true" />
    
    <h4>数字输入框</h4>
    <input id="sp1" class="nui-spinner"  minValue="200" maxValue="250"/>
    	
    <h4>树形选择框</h4>
    <input id="select1" class="nui-treeselect" url="../data/listTree.txt"
        textField="text" dataField="treeNodes" valueField="id" parentField="pid"/>
        
    <h4>输入智能提示框</h4>
    <input id="tbl1" class="nui-autocomplete" required="true" style="width:200px;"
        valueField="id" textField="text" url="org.gocom.components.nui.demo.TCountry.queryCountry.biz.ext"
        dataField="countrys" value="cn" text="中国"
    />
    <h4>复选框</h4>	
    <div id="ck1" name="product" class="nui-checkbox" checked="true" text="NUI CheckBox" ></div>
    
    <h4>列表控件</h4> 
    <div id="listbox1" class="nui-listbox" style="width:150px;height:100px;"
        textField="text" dataField="countrys" valueField="id"
        url="../data/countrys.txt">
    </div>
    <h4>多列列表控件</h4> 
    <div id="listbox2" class="nui-listbox" style="width:400px;height:120px;"
        value="cn" onvaluechanged="onListBoxValueChanged"
        url="../data/countrys.txt" dataField="countrys" showCheckBox="true" multiSelect="true" >
        <div property="columns">
            <div header="ID" field="id"></div>
            <div header="国家" field="text"></div>
        </div>
    </div>
    
    <h4>复选框组</h4> 
    <div id="cbl1" class="nui-checkboxlist" repeatItems="1" repeatLayout="table"
        textField="text" valueField="id" value="cn,usa" onload="onLoad"
        url="../data/countrys.txt" dataField="countrys"  >
    </div>
    
    <h4>单选框组</h4> 
    <div id="rbl" class="nui-radiobuttonlist" repeatItems="2" repeatLayout="table" repeatDirection="vertical"
        textField="text" dataField="countrys" valueField="id" value="cn"
        url="../data/countrys.txt" >
    </div>
    <h4>文件上传控件</h4> 
    <input id="fileupload1" class="nui-fileupload" name="Fdata" limitType="`*.txt`"
        flashUrl="swfupload/swfupload.swf"
        uploadUrl="upload.jsp"
        onuploadsuccess="onUploadSuccess"
        />
    
    	<script type="text/javascript">
        	nui.parse();
    
        </script>
    </body>
    </html>
    

    对应界面展示:
    在这里插入图片描述

    这里需要注意几点:

    1.在最开始需要引用这两个组件,才能调用普元的控件

    <%@include file="/common/common.jsp"%>
    <%@include file="/common/skins/skin0/component.jsp"%>

    2 url="…/data/countrys.txt"   这个文件是放在D:\EOS\Developer\apache-tomcat-7.0.94\webapps\default 这个目录下的data文件夹下的

    3.要是想要写js代码,必须要写这段代码:

     <script type="text/javascript">
        	nui.parse();    
     </script>
    
    展开全文
  • EOS开发实战(二)

    2019-03-06 10:27:57
    2019零基础区块链游戏实战《元素之战》系列之实战
  • Primeton BPS 6.5开发教程(EOS 开发模式)Primeton BPS 6.5开发教程(EOS 开发模式)
  • Windows下搭建EOS开发环境(js4eos)

    千次阅读 2018-11-02 10:54:47
    导致Windows下开发EOS非常困难,不得不借助Docker等工具,而这些搭建过程也是不简单。今天给大家介绍一个Javascript 工具js4eos.只需要一条命令即可使用EOS及编译部署EOS合约。 安装npm js4eos也是一个npm程序,...

          我们知道EOS及EOS CDT的编译系统只兼容了linux及Unix系列的操作系统,并没有适配Windows。导致Windows下开发EOS非常困难,不得不借助Docker等工具,而这些搭建过程也是不简单。今天给大家介绍一个Javascript 工具js4eos.只需要一条命令即可使用EOS及编译部署EOS合约。

    安装npm

          js4eos也是一个npm程序,需要通过npm安装,因而先安装npm程序。

    官网:https://nodejs.org/

    下载,安装,然后进入终端(cmd)测试是否安装成功

    node -v

    npm -v

    windows下极力推荐vscode

          不推荐在mingwin或cygwin等linux模拟器下使用js4eos,可能会出现问题

         vscode不仅支持c++即eos合约开发,同时内置的powershell也非常适合js4eos命令行操作,体验远远好于windows自带的终端

    安装vscode

         https://code.visualstudio.com/Download

        

    vscode下使用js4eos

        手工创建js4eos-dapp目录,并打开vscode程序,并打开js4eos-dapp目录

        

    然后菜单栏选择view(查看)->terminal(终端),在底部打开终端

    安装js4eos

         npm install -g js4eos

    初始化一个eos dapp工程

           js4eos dapp init -v vscode

    编译部署demo合约hello

     执行测试用例

    下面所有命令都可以在vscode的powershell终端执行

    编辑合约,配置文件及测试用例, 更多详情

    附录:

          vscode在打开文件时右下角会提示安装相应插件,安装即可

     

    命令行兼容转义问题

     

    没有安装mingwin或cygwin等类linux终端环境的用户,如果命令行直接执行js4eos,有些需要转义,比如下面转账命令

    js4eos push action eosio.token transfer '["youraccount", "account2", "1.0000 EOS", "test"]' -p youraccount

    需要更改为

    js4eos push action eosio.token transfer "[""youraccount"", ""account2"", ""1.0000 EOS"", ""test""]" -p youraccount

    引号"需要增加一个"来转义即""

    如果是vscode下的powershell则需要使用 \ 来转义, 上述命令需更改为如下

    js4eos push action eosio.token transfer '[\"youraccount\", \"account2\", \"1.0000 EOS\", \"test\"]' -p youraccount

    如果是使用其他window命令行,请自己尝试上述三种方式

    安装js4eos

         如不想使用vscode,而是对windows终端有特别喜好,执行下面命令安装js4eos

    npm install -g js4eos

       js4eos源码项目源码:https://github.com/itleaks/js4eos

     

    js4eos使用教程

    创建钱包(create wallet)

    js4eos只支持一个钱包,钱包可以管理很多key(账号)

    js4eos wallet create
    

    解锁钱包(unlock wallet)

    js4eos的钱包是加密的,解锁前必须输入创建钱包时输出的密码

    js4eos wallet unlock
    

    创建新账号(create new account)

    测试网络账号创建

    js4eos config set --network jungle
    js4eos faucet accountxxx
    

    这个 accountxxx 为你想要创建的新账号, 必须是12个字符,每个字符只能是a-z,1-4
    主网等其他网络创建请切换到对应网络

    js4eos config set --network mainnet/kylin/fibos
    js4eos faucet accountxxx
    

    导入账号私钥(import private key of account)

    你要操作某个账号,必须导入该账号的私钥,导入私钥必须先解锁钱包

    js4eos wallet unlock (然后输入钱包的密码)
    js4eos wallet import keyxxx
    

    keyxxx 为前面账号生成时输出的privateKey

    编译智能合约(compile contract)

    目前只支持单层目录合约编译 合约目录结构为xxx/xxx.cpp

    编译wasm程序(compile wasm)

    #编译需要网络,请保持网络畅通
    cd xxx
    js4eos compile -o xxx.wasm xxx.cpp
    

    生成abi文件(generate abi)

    js4eos compile -g xxx.abi xxx.cpp
    

    编译完成后xxx目录下有xxx.cpp, xxx.abi, xxx.wasm三个文件

    购买ram(buyram)

    hello合约大约需要52k ram 前面通过faucet获取的jungle测试账号是没有余额的,因此需要在下面网址免费获得EOShttp://jungle.cryptolions.io/#faucet, 然后购买ram

    js4eos system buyram acountxxx acountxxx "10.0000 EOS"
    

    上面的.0000四个0不能省略

    部署智能合约(deploy contract)

    js4eos set contract accountxxx xxx
    

    xxx是上面合约的目录,里面必须包含xxx.wasm和xxx.abi两个文件

    其他接口

    其他接口和EOS的cleos一模一样(包括参数名字传递方式)

    新增的接口

    js4eos config, 该接口用来设置系统配置,比如主网nodeos节点服务信息,网络chainid。通过该命令可以切换EOS网络。]可通过下面的命令来切换到不同网络

    切换不同EOS链(switch network)

    比如在测试网络jungle,kylin麒麟和主网之间切换

    js4eos config set --network mainnet/kylin/jungle/enu/fibos
    

    修改当前网络参数(比如chainid, httpend的url)

    以下命令会更改当前网络的参数

    js4eos config  set --chainid=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 --url=http://bp.cryptolions.io:8888
    

    切换网络,同时修改该网络的参数

    下面命令就会切换到mainnnet网络并且修改该网络参数

    js4eos config  set --network mainnet --chainid=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 --url=http://bp.cryptolions.io:8888
    

    同步配置

    由于httpendpoint有时可能会失效,我们的服务器会不定时更新节点信息,所以本地需要时可以通过config sync来同步

    js4eos config sync
    

    重置配置

    有时修改配置导致配置信息错误,可以通过reset命令修复

    js4eos config reset
    

    文档查看(EOS网络切换文档)

    目前js4eos支持主网,EosForce, 测试网络,ENU和FIBOS也在整理即将支持。切换网络就是修改chainid和httpEndpoint,具体操作详情请使用doc network命令查看

    js4eos doc network
    

    水龙头(创建第一个账号)

    由于EOS操作的复杂性,任何一个EOS公链侧链账号注册是一个高门槛。因而js4eos配置了水龙头功能,只需执行

    js4eos faucet accountxxx
    

    这个 accountxxx 为你想要创建的新账号, 必须是12个字符,每个字符只能是a-z,1-4

    常见问题

    key问题

    出现下面提示,表示你没有导入私钥(需要js4eos wallet import)或者钱包已经锁定(需要js4eos wallet unlock) js4eos的钱包只有30分钟缓存时间,30分钟无操作需要再次unlock

    missing key, check your keyprovider
    

    如果导入私钥或者unlock还是不工作,可以通过如下命令重置钱包

    js4eos wallet delete
    js4eos wallet create
    js4eos wallet import xxx
    

    网络问题

    出现fetchError

    { FetchError: request to
    

    需要检测是否有网络或者需要更换节点

    js4eos config choose url
    

    编译问题

    js4eos compile 需要网络,请保持电脑网络通畅

    错误无解时

    错误无解时可以通过如下命令来恢复

    #(ubuntu等需要sudo)
    npm install -g js4eos
    js4eos config reset
    js4eos config sync
    

    windows兼容问题

    没有安装mingwin或cygwin等类linux终端环境的用户,如果命令行直接执行js4eos,有些输入需要转义,比如

    js4eos push action youraccount hi '["youraccount"]' -p youraccount
    

    需要更改为

    js4eos push action youraccount hi "[""youraccount""]" -p youraccount
    

    引号需要"需要增加一个"来转义即""

    常用命令解读

    下图的EOS请替换为具体网络的币符号 比如ENU网络替换为ENU,fibos替换为FO

    生成公私钥

    js4eos create key
    

    导入私钥

    js4eos wallet import xxxxx
    

    导入私钥,才能执行该私钥对应的账号写操作,比如抵押CPU,NET等

    创建账号

    下面的EOS请使用上面的create key输出的公钥

    js4eos system newaccount --stake-net "0.0000 EOS" --stake-cpu "0.0000 EOS" --buy-ram-kbytes 3  createraccount somenewaccount EOSxxxxx... EOSxxxxx... -p createraccount
    

    转账

    js4eos push action eosio.token transfer '["itleakstoken", "itleakstokem", "10.0000 EOS", "test"]' -p itleakstoken
    

    查询账号

    js4eos get account youraccount
    

    购买RAM

    js4eos system buyram payer receiver "0.0001 EOS"
    

    出售RAM

    js4eos system sellram payer bytes
    

    抵押CPU,NET

    js4eos system delegatebw payer receiver "0.0000 EOS" "0.1000 EOS"
    

    第一个(0.0000 EOS)是net抵押量,第二个(0.1000 EOS)是cpu抵押量 你必须有payer账号的操作权限

    取消抵押

    js4eos system undelegatebw payer receiver "0.0000 EOS" "0.1000 EOS"
    

    第一个(0.0000 EOS)是net抵押量,第二个(0.100 EOS)是cpu抵押量 你必须有payer账号的操作权限

    部署合约

    js4eos set contract xxx/xxx/contract_name
    

    contract_name目录下需要有contract_name.abi和contract_name.wasm两个文件

    选择节点

    由于httpendpoint有时可能会失效,我们可以切换节点

    $ js4eos config choose url
    Choose one httpEndpoint for mainnet:
    	*[0] http://bp.cryptolions.io:8888
    	 [1] https://mainnet.genereos.io
    	 [2] https://mainnet.meet.one
    	 [3] http://mainnet.eoscalgary.io
    please input[0~3]>
    

    选择网络

    用户可能不了解网络的名字,可以通过列表选择方式切换网络

    $ js4eos config choose network
    Choose one network:
    	*[0] mainnet
    	 [1] localnet
    	 [2] eosforce
    	 [3] jungle
    	 [4] kylin
    	 [5] enu
    	 [6] fibos
    please input[0~6]>

    |**************************************************
    * 本文来自CSDN博主"爱踢门",喜欢请点关注
    * 转载请标明出处:http://blog.csdn.net/itleaks
    ***************************************************|

     

    展开全文
  • 普元EOS基础开发教程

    2017-02-09 17:08:54
    普元EOS基础开发教程
  • EOS开发资源及工具集合(完整汇总版) BinSTD 今天 19:30:07 0 0 ETH开发资源篇 一、开发语言 ·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;...
    ETH 开发资源篇

    一、开发语言

    ·         Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语言

    ·         Bamboo - 是一种将智能合约描述为有限状态机的语言,把智能合约看成一个状态和交易的函数,同时生成一个新的状态

    ·         Vyper - 一种类 python 的面向合约编程语言,专注于以太坊虚拟机,着重于安全、简洁、和稳定性

    二、ERC 通证标准

    ·         ERC-20 - 可替换资产的原始代币合约

    ·         ERC-223 - 向后兼容ERC-20,解决地址错误丢失代币的缺陷

    ·         ERC-721 - 非同质性代币,可用来标记独特的个人资产

    ·         ERC-777 - 包含更大广度的交易处理,具有高度可定制性

    ·         ERC-827 - 允许转让通证并允许持有人允许第三方使用通证

    ·         ERC-918 - Mineable Token Standard

    ·         ERC-998 - 可拆解非同质化代币,可包含多个ERC-721和ERC-20形式

    ·         ERC-1155 - 可在一个智能合约中定义多个物品(token)

    ·         ERC-1400 - 证券通证标准,部分可互换代币,该EIP标准具有能力进行强制转移

    ·         ERC-1404 - 为证券通证、通证化证券以及其它携带复杂要求的其它通证而准备

    ·         ERC-165 - 创建标准方法以发布和检测智能合约实现的接口

    ·         ERC-725 - 密钥管理和执行的代理合同,建立区块链身份

    ·         ERC-173 - 合同所有权的标准接口


    (完整阅读请下载文档,或关注BinSTD公号回复关键词“开发工具”免费获取)


    三、开发框架

    ·         Truffle - 最为流行的智能合约开发、测试和部署框架,经常与 Ganache (也是由 Truffle 团队开发) 一起搭配使用

    ·         Embark - 一个 DApp 开发框架

    ·         Populus - 用Python语言写的智能合约开发框架

    ·         Etherlime - 基于 ethers.js 的 DApp 开发框架

    ·         Parasol - 敏捷智能合约开发环境

    四、集成开发环境(IDE)

    ·         Remix - 一个基于solidity语言的在线智能合约开发IDE,它提供从编译,调试到部署的全流程支持

    ·         Atom - Atom 编辑器可以结合 Atom Solidity Linter, Etheratom 等插件进行智能合约开发

    ·         Pragma - 一个非常简单的 solidity 合约在线 IDE。提供合约的编译、部署与调用支持

    ·         Superblocks Studio - Superblocks Studio 可以帮助你在线编写、编译与部署智能合约

    ·         Vim solidity - 有了这个,使用 vim 也可以写愉快地写 solidity

    ·         Visual Studio Code - VSCode 是***常用的最多的工具,好多支持 solidity 的插件

    ·         Intellij Solidity Plugin - JetBrains IntelliJ Idea IDE 上用的 solidity 插件,支持语法高亮,格式化与代码自动补全

    ·         Eth Fiddle - 由The Loom Network开发的IDE,允许编写、编译和调试智能合约,易于共享和查找代码段

    五、常用以太坊交互代码库

    ·         Web3.js - 以太坊官方的 Javascript API

    ·         Eth.js - 优化过的 Web3.js

    ·         Ethers.js - 更加完整的以太坊 Javascript 代码库,包括 Web3.js 没有的足记词与 HD 钱包支持等。

    ·         Web3.py - Python 版的 Web3

    ·         Web3.php - PHP 版的 Web3

    ·         Web3j - Java 版的 Web3

    ·         Nethereum - .Net 版的 Web3

    ·         Ethereum.rb - Ruby 版的 Web3

    ·         Web3.hs - Haskell 版的 Web3

    ·         KEthereum - Kotlin 版的 Web3

    ·         Pyethereum - Python 版的以太坊核心客户端

    ·         Drizzle - 基于 Redux 的用于链接以太坊的前端代码库

    ·         Eventeum - 以太坊智能合约事件和后端微服务之间的桥梁

    ·         Vortex - 可直接用于 DApp 的 Redux Store。通过 WebSockets 实现智能合约与后台数据的自动刷新。

    六、开箱即用工具

    ·         Truffle boxes - 一些打包好的组件

    ·         Local Raiden - 在 docker 容器中运行本地雷电网络以进行演示和测试

    ·         Private networks deployment scripts - 私有 PoA 网络的开箱即用部署脚本

    ·         Local Ethereum Network - 私有 PoW 网络的开箱即用部署脚本

    ·         Kaleido - 使用 Kaleido 启动联盟区块链网络,非常适合 PoC 和测试

    ·         Cheshire - CryptoKitties API 和智能合约的本地沙箱实现

    ·         Solc - Solidity 编译器

    ·         Solidity cli - 更快更好地编译 Solidity

    ·         Ethereumjs - 以太坊实用的 javascript 代码库集合,比如 ethereumjs-util 和 ethereumjs-tx 等

    ·         Ethjs - 简单好用的 JS 模块

    ·         Eth lightwallet - 在 Node 和浏览器里用的以太坊轻钱包

    ·         RLP - RLP 编码的 JS 版实现

    ·         Solium - 用于识别和修复 Solidity 中的代码格式和安全问题

    ·         Ethereal - 一个命令行工具,用于管理以太坊中的常见任务

    ·         ABI decoder - 用于解码以太坊交易中数据参数和事件的库

    ·         Ethereum ABI UI - 根据以太坊合约 ABI 自动生成 UI 表单字段和关联的验证器

    ·         Eth crypto - 用于以太坊的加密javascript 函数以及将它们与 web3js 和 solidity 一起使用的教程

    ·         Solidity flattener - 一个可以将工程中相互引用的合约合并到一个合约文件的工具

    ·         JS IPFS API - JS 实现的与 IPFS API 交互的代码库

    ·         Ganache - 具有 UI 的本地以太坊简单实现

    ·         SpankCard - 浏览器里用的以太坊钱包

    ·         Parity Signer - 允许签署交易的移动应用

    ·         py-eth - 以太坊 Python 语言工具集

    ·         Decode - 用以解析提交给本地 testrpc 节点的交易,使其更易读,更易于理解

    ·         Neufund - Smart Contract Watch - 一种监控大量智能合约和交易的工具

    ·         Supermax - 提供以太坊上智能合约活动和事件日志的实时数据反馈

    七、客户端

    ·         Geth - Go 语言实现版本

    ·         Parity - Rust 语言实现版本

    ·         Cpp-ethereum - C++ 语言实现版本

    ·         Pyethapp - 基于 pyethereum 的 Python 语言实现版本

    ·         Trinity - 基于 py-evm 的 Python 语言实现版本

    ·         Ethereumjs - 基于 ethereumjs-vm 的 JS 实现版本

    ·         Ethereumj - Java 语言实现版本

    ·         Harmony - 基于 Ethereumj 的以太坊节点实现,EtherCamp出品

    ·         Seth - 命令行版的 MetaMask

    ·         Mustekala - 以太坊轻客户端实现,MetaMask 团队出品

    ·         Exthereum - Elixir 语言实现版本

    ·         EWF Parity - 兼容以太坊的能源区块链客户端

    ·         Quorum - 基于以太坊改造的关注数据隐私的授权访问区块链, JP Morgan 出品

    八、存储相关

    ·         Swarm - 去中心化存储平台和内容分发服务,是以太坊 web3 技术栈的基础层服务

    ·         IPFS - 去中心化存储网络,致力于使网络更快,更安全,更开放的点对点超媒体协议

    ·         IPFS-Store - 带检索功能的 IPFS 服务 API

    ·         OrbitDB - 基于 IPFS 的去中心化数据库

    九、消息协议

    ·         Whisper - DApps 相互通信的通信协议, 以太坊 web3 技术栈的基础层服务

    ·         DEVp2p Wire Protocol - 以太坊节点间的点对点通信

    十、钱包

    ·         Metamask - 广为实用的浏览器插件钱包

    ·         Gnosis multisig wallet - 多重签名钱包

    ·         Mist - 官方钱包

    ·         MyEtherWallet - 安全方便地与区块链交互的工具

    ·         Ether Address Lookup - 以太坊地址检测 Chrome 浏览器插件

    ·         MyCrypto - 和 MyEtherWallet 类似的钱包工具

    ·         Portis - 方便用户使用 DApp 的 web 端钱包

    ·         Toshi - 移动端 DApp 浏览器

    ·         Trust - 移动端以太坊钱包

    ·         Status - 基于 react 实现的移动端以太坊操作系统

    ·         imToken - 广为使用的闭源钱包

    ·         WallETH - 开源的 Android 以太坊钱包

    ·         Trezor - 知名度很高的硬件钱包

    ·         Ledger - 支持多币种的硬件钱包

    ·         KeepKey - 另一款硬件钱包

    十一、浏览器

    ·         Etherscan - 最为流行的以太坊浏览器,用于查看交易信息和合约代码

    ·         Etherchain Light - 用于以太坊私链的区块链浏览器

    ·         POA Explorer - 支持 POA 共识的以太坊浏览器

    ·         QuickBlocks - 访问以太坊区块链数据的工具集

    十二、GAS计算

    ·         EthGasStation - 估计交易费用和时间的网站

    ·         Petrometer - 计算特定账户每天所花费的 gas

    ·         CryptoProf - 智能合约 gas 消耗测量工具

    十三、基础架构相关服务

    ·         Oracalize - 预言机服务

    ·         Infura - 以太坊节点服务

    ·         Regis - 基于以太坊的数字资产登记平台

    ·         uPort - 身份认证

    ·         Netstats - 以太坊网络统计

    ·         ENS - 以太坊域名系统

    ·         Name Bazaar - 以太坊域名市场

    ·         Quantstamp - 安全审计

    ·         SmartCheck - solidity 源码静态分析

    ·         MD4 Online Hash Function - hash 算法在线工具

    十四、Layer2 架构的开发者指南

    ·         Ethereum Payment Channel - 以太坊支付渠道

    ·         µRaiden Documentation - RDN发送者/接收者用例的指南和样本

    ·         Learn Plasma - 涵盖所有的Plasma变种(MVP/Cash/Debit)

    ·         Plasma MVP - OmiseGO团队对Plasma最小可行性产品的研究实施

    ·         Plasma MVP Golang - Golang实现并扩展Plasma MVP

    ·         Plasma Cash - Plasma Cash简单实施

    ·         POA Network - 使用POA权威证明机制的以太侧链

    ·         Loom Network - 允许基于以太坊的Solidity应用程序在公共、被许可的和私有链上运行

    十五、测试网络水龙头

    ·         Rinkeby faucet

    ·         Kovan faucet

    ·         Ropsten faucet

    十六、合约代码库

    ·         Zeppelin - 经过测试的可重用合约库比如 SafeMath、 ZeppelinOS 等

    ·         cryptofin-solidity- 一系列Solidity库,用于在以太坊上建立安全和高效的智能合约

    ·         Modular Libraries - 另一个合约库

    ·         DateTime Library - 节约Gas 的solidity 时间处理库

    ·         Aragon - DAO 协议

    ·         0x - DEX 协议

    十七、测试

    ·         Solidity code coverage - solidity 单元测试覆盖率

    ·         Solidity coverage - 另一个 solidity 代码覆盖率工具

    ·         Solidity function profiler - 列出合约函数

    ·         Espresso - solidity 测试框架

    ·         Eth tester - 以太坊应用测试套件

    ·         Cliquebait - 简化验收测试的工具

    ·         Hevm - 专为合约测试的 EVM 实现

    ·         Ethereum graph debugger - solidity 调试图形化工具

    ·         Solhint - 为智能合约验证提供安全性,样式指南和最佳实践规则

    十八、安全工具

    ·         Mythril - 智能合约静态安全分析

    ·         Oyente - 智能合约静态安全分析

    ·         Porosity - 智能合约反编译与静态安全分析

    ·         Ethersplay - EVM 反汇编

    ·         Evmdis - EVM 反汇编

    ·         Hydra - 去中心化的合约安全分析框架

    ·         Solgraph - 图形化智能合约处理流程

    ·         Manticore - 合约分析工具

    ·         Solidity security blog - 合约安全分析博客

    ·         Awesome Buggy ERC20 Tokens - 问题合约汇集

    ·         智能合约最佳实践 - by ConsenSys

    ·         Safety wiki - 以太坊安全

    十九、隐私

    ZoKrates - 适用于以太坊的零知识证明工具箱

    二十、开发知识相关

    ·         CryptoZombies - 以太坊僵尸教程

    ·         Solidity idiosyncrasies - solidity 陷阱,局限性和特质

    ·         Ethereum development with Go - 用 go 语言进行以太坊开发

    ·         Chainshot building blocks - 免费课程

    ·         Delegate call - token 激励的问答社区

    ·         Stackexchange - 问答社区

    ·         r/EthDev - Subreddit

    ·         Ethernaut - 游戏中掌握智能合约安全

    二十一、治理相关

    ·         Ethresear.ch - 参与以太坊研究工作的论坛, 包括但不限于: Casper, Sharding, EVM improvements, Crytpeconomics, Plasma and State-channels

    ·         Fellowship of Ethereum Magicians - 以太坊社区论坛

    ·         EIPs - 以太坊改进提案库

    ·         ERCs - The Ethereum Request for Comment repository

    二十二、参考资料

    ·         Wiki - 以太坊知识库

    ·         Yellow Paper - 以太坊黄皮书

    ·         Beige Paper - 不带那些特殊符号的以太坊黄皮书

    ·         精通以太坊 - by Andreas M. Antonopoulos, Gavin Wood

    ·         EVM opcodes - 以太坊指令集

    ·         EVM illustrated - 以太坊虚拟机的解释文档

    ·         4bytes - 合约 4 字节方法签名库

    内容来源:GitHub

    原文链接:https://github.com/ConsenSys/ethereum-developer-tools-list

    EOS开发资源篇


    一、文档

    ·         EOSIO - EOS开发者门户

    https://developers.eos.io

    ·         EOS Docs - EOS开发文档资源

    https://www.eosdocs.io

    ·         EOSIO StackExchange - EOSIO堆栈交换

    https://eosio.stackexchange.com

    ·         EOS Bootstrap - EOS课程及教育资源

    https://eosbootcamp.com

    ·         Eostutorials - 适应不同技能水平的EOS教程网站

    https://eostutorials.com

    二、基础设施/ DevOps

    ·         EOS Node Tools - EOS节点工具

    https://eosnode.tools

    ·         EOSIO Docker - 简单快速地设置EOS.IO

    https://github.com/EOSIO/eos/tree/master/Docker

    ·         EOS Test Cave - EOS验证的自动化测试框架

    https://github.com/EOS-BP-Developers/EOS-Test-Cave

    ·         Block Matrix - EOS 出块节点切换脚本

    https://github.com/BlockMatrixNetwork/eos-bp-failover

    ·         eos-claimer - 获取奖励工具

    https://github.com/eoscanada/eos-claimer

    ·         EOSIO AWS Kinesis - 设置AWS Kinesis 插件 ,从而轻松收集,处理和分析实时流数据

    https://github.com/eosasia/nodeos_kinesis_plugin

    ·         EOS Web Sockets - 为EOS创建Web套接字

    https://github.com/EOS-Nation/eosws

    ·         PatronEOS - 用于EOS节点的RPC检查点

    https://github.com/EOSIO/patroneos

    ·         Pitreos - EOS的时间点恢复

    https://github.com/eoscanada/pitreos

    ·         Demux - 区块链应用程序的确定性事件源状态和副作用处理

    https://github.com/EOSIO/demux-js

    ·         eosauthority 转账规则设定

    https://github.com/eosauthority/incoming-transfer-rules

     

    ·         EOS 节点监控器 - 观察和过滤EOS节点事务/操作并推送到RabbitMQ,MongoDB,0MQ等

    https://github.com/EOSEssentials/eos-node-watcher

    ·         EOSIO GraphQL - 为EOSIO区块链部署GraphQL API + MongoDB

    https://github.com/EOS-BP-Developers/eosio-graphql

    ·         EOSpace - 同步 EOS 区块链数据到 MongoDB 数据库

    https://github.com/EOSpace/eos-sync

    ·         EOSIO MongoDB 查询 - 快速为EOSIO区块链创建复杂的MongoDB查询

    EOS-BP-Developers/eosio-mongodb-queries

    ·         EOSIO Kafka插件 - 利用Kaftka丰富的所有实时功能

    https://github.com/TP-Lab/kafka_plugin

    EOS Mechanics - 用于基准合同和公用事业

    https://github.com/AlohaEOS/eos-mechanics

    ·         EOS RabitMQ 插件

    https://github.com/bancorprotocol/eos-rabbitmq-plugin

    ·         EOS ZeroMQ Plugin

    https://github.com/cc32d9/eos_zmq_plugin

    ·         Benchmark工具

    https://github.com/AlohaEOS/eos-mechanics

    三、开发工具

    ·         CLEOS-命令行界面工具

    https://github.com/EOSIO/eos/tree/master/programs/cleos

    ·         NODEOS - 核心EOSIO节点守护程序,可以配置插件来运行节点

    https://github.com/EOSIO/eos/tree/master/programs/nodeos

    ·         KEOSD - 将EOSIO密钥安全存储在钱包中的组件

    https://github.com/EOSIO/eos/tree/master/programs/keosd

    ·         EOSC -跨平台命令行工具

    https://github.com/eoscanada/eosc

    ·         Wasm Dec - 将WebAssembly二进制文件转换为C的程序

    https://github.com/wwwg/wasmdec

    ·         FC - 提供一组用于开发异步库的实用程序库

    https://github.com/bytemaster/fc

    ·         Wabt开发套件 - WebAssembly的一套工具

    https://github.com/WebAssembly/wabt

    ·         EOSIO合同 - 智能合约开发套件

    https://github.com/EOSArgentina/eosdev

    ·         EOSFactory-Python所写的EOS开发/测试套件

    https://github.com/tokenika/eosfactory

    ·         EOSJS - EOS区块链的通用库

    https://github.com/EOSIO/eosjs

    ·         EOSJS Browser - 一个建议版本的EOSJS

    https://github.com/EveripediaNetwork/eosjs-browser

    ·         EOSIO Boilerplate - EOSIO样板项目,包含UI和Smart Contract代码,以及初始化和启动必要的所有组件

    https://github.com/EOSIO/eosio-project-boilerplate-simple

    ·         EOS Helper - 一份有用的脚本列表

    https://github.com/EOSEssentials/EOSHelpers

    ·         EOS Blox - 世界上第一套提供定制智能合约的Web组件

    https://www.eosblox.com/

    ·         Ping EOS - 在EOS / React.js之间实现ping

    https://github.com/eosasia/ping-eos

    ·         EOS通讯 - node.js模块,允许在EOS平台上进行链加密通信

    https://github.com/eostitan/eos-communication

    ·         EOS Encrypt - 允许加密和解密消息

    https://github.com/EOS-Nation/eos-encrypt

    四、浏览器

    ·         Bloks.io - 用于跟踪网络上的所有类型的操作

    https://bloks.io

    ·         eosflare - EOS区块浏览器

    https://eosflare.io

    ·         eospark - 专业易用的EOS区块浏览器

    https://eospark.com

    ·         MyEOSKit - EOS区块浏览器

    https://www.myeoskit.com/explorer

    五、Wrappers, APIs & SDKs

    ·         EOS Scala Wrapper - EOS RPC API的Scala包装器

    https://github.com/EOSEssentials/Scala-API-Wrapper

    ·         EOS Java Wrapper - EOS RPC调用的Java实现

    https://github.com/EOSEssentials/eos-java-rpc-wrapper

    ·         EOS Go - EOS Go语言API库

    https://github.com/eoscanada/eos-go

    ·         EOSpy - 进行中,能在不编译代码的情况下执行所有cleos get函数

    https://github.com/eosnewyork/eospy

    ·         EOS Sharp - EOS区块链的C#客户端库

    https://github.com/GetScatter/eos-sharp

    ·         EOS PHP - 适用于EOS API的PHP Wrapper

    https://github.com/kesar/eos-php

    ·         PHP SDK - 适用于EOS RPC API的PHP SDK

    https://github.com/BlockMatrixNetwork/php-eos-rpc-sdk

    ·         JVM库 - 用于JVM的EOS库,主要用于Android开发

    https://github.com/memtrip/eos-jvm

    ·         Swift库 - 一个用于与EOS交互的开源框架,用Swift编写

    https://github.com/ProChain/SwiftyEOS

    ·         EOS API 平台 - EOS API服务平台

    https://github.com/Tandemly/eos-api-service

    六、测试网络

    ·         Jungle - 生态系统中最古老,最可靠的测试网之一,已成为EOS开发社区的支柱

    https://github.com/CryptoLions/EOS-Jungle-Testnet

    ·         CryptoKylin - 一个开发人员友好的测试网络

    https://github.com/cryptokylin/CryptoKylin-Testnet

    ·         EOS Debug - 测试网络使用指南

    https://github.com/eoscafe/eos-debug

    、安全

    ·         https://www.slowmist.com,专注区块链生态安全

    ·         https://peckshield.com

    ·         Debunking Claimed Vulnerability in EOSIO Smart Contract System

    ·         Prevent DDoS with AWS Network Load Balancer

    ·         EOS Node Remote Code Execution Vulnerability

    ·         Block.one one hackerone

    八、其它工具

    ·         http://eosflare.io/account/eosio.names,查看短账号注册情况

    ·         https://github.com/tokenbankteam/eos-bp-profile-parser,EOS BP Profile 解析工具

    ·         https://github.com/EOSIO/patroneos,RPC Checkpoint for EOS nodes

    ·         https://github.com/OracleChain/EOSBenchTool,EOS 性能测试工具

    ·         http://eosdemo.bec.com,EOS 钱包 DEMO 版,美图贝客钱包技术支持

    ·         https://github.com/activeeos/eos-helm,Kubernetes Helm charts for the EOS smart contracts platform

    ·         https://github.com/eosdetroit/bp-playbook, Ansible playbook to dynamically deploy Dockerized nodeos

    ·         https://github.com/eoseoul/eos-ramcost, Adjusting supply of a token and connector balance of bancor during final phase of boot

    ·         RAM 价格趋势

    ·         RAM 价格计算器

    ·         RAM、带宽、CPU 价格 / 成本计算

    ·         RAM 价格、投票数、未支付区块数统计

    ·         EOS 主网 24 小时 / 7 天内 Action 数据统计

    ·         超级节点(BP)的世界分布

    ·         EOS 事件日历

    ·         https://github.com/ukarlsson/eos-clion-example,使用 CLion 的示例代码

    ·         https://eos.feexplorer.io,EOS RAM 历史价格

    ·         eosDataConditionSearch

    展开全文
  • EOS开发实战(一)

    2021-06-12 19:33:43
    《2019零基础区块链游戏实战《元素之战》系列》课程教学目的是使同学们通过对区块链游戏实战《元素之战》的学习,可以做到区块链游戏开发的入门到深入了解。 课程内容包括:课程概述;linux命令行;EOS环境安装;C++...
  • 各位小伙伴对IDE肯定不陌生,主要是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。 web IDE则是将IDE里面除用户交互之外的功能全部移到了后台,开发人员在浏览器上可以...

    Web IDE是什么?

    各位小伙伴对IDE肯定不陌生,主要是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。

    web IDE则是将IDE里面除用户交互之外的功能全部移到了后台,开发人员在浏览器上可以像在本机一样调试、编译、运行程序,并且不会受系统环境和机器性能的限制。

    在这里插入图片描述
    (图为一款web IDE的系统架构)

    目前的web IDE主要有AWS Cloud9、Cloud Studio、Eclipse Che、Gitpod等,这些web IDE各有千秋,其中Gitpod是目前web IDE中对Github上的项目支持最好的,也是eosio主推的一款产品。并且Gitpod对于非商用的开发者,每月会有100小时的免费使用时间,本文的讲解,也会以Gitpod为例(下文中提到的web IDE,在没有特指的情况下,全部为Gitpod)

    关于Gitpod,可以参考Gitpod说明文档。(https://www.gitpod.io/docs/)

    为什么要使用Web IDE

    EOSForce社区小伙伴在EOS Web IDE上线的同时,第一时间发布了EOSC版本。方便了开发者更好的对开源社区作出贡献,接下来将详细讲解使用教程。

    1. 环境搭建及运行节点门槛

    对于很多区块链爱好者来说,想要搭建一个简单的环境来了解一个区块链项目,很大程度上会因为搭建环境以及初次运行过程中的各种问题而退缩。

    对于智能合约开发者来说,很多时候会因为初次运行,或者环境切换等原因,在这个过程中耗费很多不必要的时间成本。

    而Web IDE的出现,会让这些问题不再成为麻烦。拿eosio来说,想要启动一个节点,并且在节点上部署开发好的智能合约,并不是一件很简单的事,需要下载代码、安装依赖、编译代码、启动节点、编译合约、然后部署。在这个过程中,可能会出现非常多的问题。

    EOSIO 2官方更新后,使用Web IDE,只需要一键,就可以开始开发调试智能合约,消除开发人员的入门障碍。它在云中运行,使新开发人员能够建立智能合约和Web应用程序开发环境以及完全集成的单节点个人测试网,因此他们可以在几分钟之内从入门到构建。

    2. 启动节点的机器性能要求

    在计算机上运行一个eos的节点,是非常耗费性能的,很多PC机可能根本没法成功运行一个eos的节点,更不用说同时还打开IDE调试智能合约,而Web IDE将这些对机器性能的要求移到了后台,前端仅仅是一个交互页面。

    3. 随处可用

    传统IDE还有一个问题就是每次开发必须带上开发机或者每次改完代码都push到远程,而Web IDE解决了这个问题,它可以随时在远程保留开发环境,随时随地,只要有浏览器,就可以开始写合约。

    以EOSC为例讲解使用步骤

    1. 浏览器插件下载

    Gitpod对Chrome和Firefox都提供了插件支持,下载插件后,会使进入Gitpod开始开发更加方便,本文以Chrome为例介绍使用步骤。

    Chrome插件下载:https://chrome.google.com/webstore/detail/gitpod-online-ide/dodmmooeoklaejobgleioelladacbeki

    2. 一键生成环境

    插件下载成功后,打开eosforce专门为使用web IDE开发智能合约准备的github项目eosforce-web-ide,我们会发现项目的主页上多了一个Gitpod按钮。

    在这里插入图片描述

    点击Gitpod按钮,就可以直接进到一个节点已经启动好的环境中,并且这个环境提供了一些编写智能合约的模板(实际的开发环境中,建议大家先fork这个项目,然后再启动Gitpod)。

    如果没有安装GitPod插件,可以直接在浏览器上新开一个页面,输入网址 https://gitpod.io/#https://github.com/xxxxx/eosforce-web-ide (其它xxxx替换成你的github用户名)

    在这里插入图片描述

    从图中可以看见,eosforce已经模拟正式环境启动了23个节点并且正在出块,同时整个编写智能合约的IDE环境已经搭建好,现在就可以使用web IDE直接开始开发智能合约了。

    3. 开发调试合约

    智能合约的具体开发、调试以及部署说明可以参考eosio白皮书,本文仅分析该项目模板合约的部署和调用。

    在web IDE中打开contract/talk/talk.cpp文件,核心逻辑如下:

    [[eosio::action]] void post(uint64_t id, uint64_t reply_to, eosio::name user, const std::string& content) {

    message_table table{get_self(), 0};

    require_auth(user); // 检查用户

    if (reply_to) // 检查是否需要回复

    table.get(reply_to);

    // 检查id不能过大,并且当没有传的时候分配一个id

    eosio::check(id < 1’000’000’000ull, “user-specified id is too big”);

    if (!id)

    id = std::max(table.available_primary_key(), 1’000’000’000ull);

    // 记录post的内容到table

    table.emplace(get_self(), [&](auto& message) {

    message.id = id;

    message.reply_to = reply_to;

    message.user = user;

    message.content = content;

    });

    }

    理清post方法的逻辑之后,就可以开始编译文件了,首先点击Gitpod上方导航栏的Terminal -> New Terminal(如下图)

    在这里插入图片描述

    可以看见Gitpod下方出现了一个新的命令行窗口

    在这里插入图片描述

    在该窗口执行如下命令,编译talk.cpp文件,会生成talk.abi和talk.wasm两个文件

    eosforce-cpp contract/talk/talk.cpp

    然后执行以下命令,创建合约账户talk,并向该合约账户转帐10000EOS(此次转账主要是该账户随后需要set code和set abi)

    cleos create account eosforce talk EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

    cleos transfer eosforce talk ‘10000.0000 EOS’

    通过执行系统合约为talk账户租一定的内存(此处需要多租一点,因为set code操作需要的内存很多),然后将编译后的wasm和abi文件绑定到talk合约账户

    cleos push action eosio vote4ram ‘[talk, biosbpa, “2000.0000 EOS”]’ -p talk

    cleos set code talk talk.wasm

    cleos set abi talk talk.abi

    随后创建两个普通账户bob和alice,并向他们每人转帐100 EOS(因为后续执行合约需要扣除fee),用来执行合约

    cleos create account eosforce bob EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

    cleos create account eosforce jane EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

    cleos transfer eosforce bob ‘100 EOS’

    cleos transfer eosforce jane ‘100 EOS’

    为talk合约账户的post方法设置fee,此处是其他账户执行该方法时需要支付的fee

    cleos set setfee talk post ‘1.0000 EOS’

    执行合约,以下三个命令分别是

    bob以1000为id,发布一条"This is a new post"消息到table,并且不需要回复

    jane以2000为id,发布一条"This is my first post"消息到table,并且不需要回复

    bob以1001为id,发布一条"Replying to your post"消息到table,并且回复jane

    cleos push action talk post ‘[1000, 0, bob, “This is a new post”]’ -p bob

    cleos push action talk post ‘[2000, 0, jane, “This is my first post”]’ -p jane

    cleos push action talk post ‘[1001, 2000, bob, “Replying to your post”]’ -p bob

    最后,输入如下命令,查看table的内容

    cleos get table talk ‘’ message

    得到如下结果,说明合约已经成功执行

    {

    “rows”: [{

     "id": 1000,
    
     "reply_to": 0,
    
     "user": "bob",
    
     "content": "This is a new post"
    

    },{

     "id": 1001,
    
     "reply_to": 2000,
    
     "user": "bob",
    
     "content": "Replying to your post"
    

    },{

     "id": 2000,
    
     "reply_to": 0,
    
     "user": "jane",
    
     "content": "This is my first post"
    

    }

    ],

    “more”: false

    }

    1. 过程分析

    下面具体分析一下这个一键生成环境的过程中都发生了什么

    在任何一个github项目的地址前,加上https://gitpod.io/# , 就可以在gitpod中打开该项目,例如在eosforce-web-ide这个项目中点击Gitpod按钮,实际访问的就是https://gitpod.io/#https://github.com/ylic/eosforce-web-ide 这个地址

    打开Gitpod之后,Gitpod会根据项目中的 .gitpod.yml 文件来决定环境的初始化工作,该文件内容如下:

    image: ylic/eosforce-web-ide:v0.1.0 # Gitpod会加载ylic/eosforce-web-ide:v0.1.0的docker镜像,该镜像里面会部署编译好的eosforce相关程序,以及其他一些需要使用到的文件

    ports: # 配置环境中需要打开的端口

    • port: 3000

    onOpen: ignore

    • port: 8000

    onOpen: ignore

    • port: 8080

    onOpen: ignore

    • port: 8888

    onOpen: ignore

    • port: 9876

    onOpen: ignore

    … #此处省略了部分端口

    tasks: # 初始化阶段的任务

    • before: cd webapp

    init: yarn    # yarn会根据package.json文件去下载相关依赖包

    command: nginx -c $PWD/nginx.conf; npx webpack-dev-server # 启动nginx反向代理

    • before: cd /workspace/eosforce-web-ide

    command: ./nodeoscmd # 启动nodeos

    以上步骤结束后,一个完整的eosforce测试环境就运行起来了,然后IDE会加载当前项目,开发人员就可以通过浏览器开发调试智能合约了。

    总结

    通过以上步骤,很大的简化了编写和调试智能合约的难度,使得更多的开发者可以接触到这个优秀的区块链项目和智能合约。同时,有了这些web IDE的相关指导文档,越来越多的开源团队也可以发布自己基于Web IDE项目,来方便开发者更好的对开源社区作出贡献。

    Github链接:https://github.com/ylic/eosforce-web-ide

    展开全文
  • 普元 RIA For EOS开发指南.pdf
  • 1. 开发步骤 创建钱包 创建帐户 部署token合约,以便区块链准备好创建新的token。 创建新token。 将新token分配给创世帐户(eosio)。 在用户之间转移token。(创建交易、创建签名交易) 检查余额等。 ...
  • 普元是国内一家专注于SOA构件的中间件供应商,该文档是我初学EOS时使用的一份文档
  • EOS-Java开发工具

    2018-09-06 18:17:48
    参考eosio源码进行翻写的Java开发工具,可以支持快速签名、验签、发起交易,支持调用智能合约的自定义函数,兼容eos所有链上操作。
  • 对于EOS开发,目前还不是主流技术,网上资源较少,对于想要入门的人来说网上找不到相关知识实在是憋屈。其实大致开发过程还是很简单的,与SSM框架有很多相似之处,很多人不是看不懂EOS项目,而是不知道怎么实现前后...
  • eos开发规范.docx

    2019-07-23 15:25:12
    信息系统项目名称必须由信息中心分配,项目名称、包名、角色名称、菜单名称等都必须以项目名称作为前缀。
  • 普元eos7.5开发手册

    2017-05-17 10:37:07
    普元eos platform 7.5 新版教程PDF高清
  • EOS开发环境搭建

    2019-01-08 14:19:47
    EOS开发环境搭建   在上一篇文章《扒一扒EOS的前世今生》中,我们已经了解了EOS以及他的创始人Daniel Larimer的故事,本次为大家带来的是关于EOS开发环境搭建的内容。首先我们来了解一下EOS的核心架构和白皮书。 ...
  • EOS开发调试环境搭建(全部流程)

    万次阅读 2018-06-16 18:44:58
    本贴适用于:Linux-ubuntu16.04版本和mac-osx 10.12+版本   一、最新代码编译构建 ...git clone https://github.com/EOS-Mainnet/eos  2、更新代码仓库子模块,使用递归参数 [plain] view plain copy g...
  • 普元开发的pdf教程讲述eos开发的基本开发,包括页面流,逻辑流等等
  • 暴走时评:上周早些时候,EOS开发商Block.one被揭露试图回购10%的股份,据称这是该公司在不到一年时间里第二次回购其股份了。Block.one的首席执行官在Telegram官方群聊小组中表示,回购的目的是在避免资产负债表出现...
  • 暴走时评:上周早些时候,EOS开发商Block.one被揭露试图回购10%的股份,据称这是该公司在不到一年时间里第二次回购其股份了。Block.one的首席执行官在Telegram官方群聊小组中表示,回购的目的是在避免资产负债表出现...
  • EOS开发演示

    2014-08-06 11:12:34
    EOS开发演示,适合入门新手学习如何进行EOS开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,540
精华内容 5,016
关键字:

eos开发