您正在查看: EOS-开发工具 分类下的文章

EOS开发库收集(持续更新)

开发语言

C Sharp

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

    Eos eos = new Eos(new EosConfigurator()
    {    
      HttpEndpoint = "https://nodes.eos42.io", //Mainnet
      ChainId = "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
      ExpireSeconds = 60,
      SignProvider = new DefaultSignProvider("myprivatekey")
    });
  • https://github.com/eosnewyork/EOSDotNet

      var chainAPI = new ChainAPI("https://api.eosnewyork.io");
    
      string  _code  =  "eosio.token", _action  =  "transfer", _memo  =  "";
      TransferArgs  _args  =  new  TransferArgs(){ from  =  "account1", to  =  "account2", quantity  =  "1.0000 EOS", memo  =  _memo };
    
      //called asynchronously
      var abiJsonToBinAsync = await chainAPI.GetAbiJsonToBinAsync(_code, _action, _args);
      //called synchronously
      var abiJsonToBinSync = chainAPI.GetAbiJsonToBin(_code, _action, _args);

    Go

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

      api := eos.New("http://testnet1.eos.io")
    
      infoResp, _ := api.GetInfo()
      accountResp, _ := api.GetAccount("initn")
      fmt.Println("Permission for initn:", accountResp.Permissions[0].RequiredAuth.Keys)

Python

  • https://github.com/EvaCoop/eosjs_python

      from eosjs_python import Eos
    
      eos = Eos({
          'http_address': 'http://172.18.0.1:8888',
          'key_provider': '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'
      })
    
      eos.newaccount({
          'creator': 'eosio',
          'name': 'mytestacc13',
          'owner_public_key': 'EOS7vTHtMbZ1g9P8BiyAGD7Ni7H6UALVLVCW13xZrXT4heCBke3it',
          'active_public_key': 'EOS8KKKYBBdwrmXRRynDXSxTX2qoT9TA4agahXXF4ccUgRCy81RNc',
          'buyrambytes_bytes': 8192,
          'delegatebw_stake_net_quantity': '100.0000 SYS',
          'delegatebw_stake_cpu_quantity': '100.0000 SYS',
          'delegatebw_transfer': 0
      })
  • https://github.com/eosnewyork/eospy

      # Get chain information
      pycleos --url https://api.eosnewyork.io get info
    
      # get information about a block
      pycleos --url https://api.eosnewyork.io get block 447
    
      # Retrieve an account from the blockchain
      pycleos --url https://api.eosnewyork.io get account --account eosio
    
      # Retrieve the code and ABI for an account
      pycleos --url https://api.eosnewyork.io get code --account eosio

PHP

  • https://github.com/zyq20130111/eos_php

      /* Create the rest client */
      EosApiRestClient eosApiRestClient = EosApiClientFactory.newInstance("http://127.0.0.1:8888").newRestClient();
    
      /* Create the json array of arguments */
      Map<String, String> args = new HashMap<>(4);
      args.put("from", "currency");
      args.put("to", "eosio");
      args.put("quantity", "44.0000 CUR");
      args.put("memo", "My First Transaction");
      AbiJsonToBin data = eosApiRestClient.abiJsonToBin("currency", "transfer", args);```
    
      /* Get the head block */
      Block block = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());

Java

Dapp js 相关

EOS RPC API monitor Health Check

由于需要检查EOS Rpc API的健康运行情况,所以需要一个检查的脚本定期运行
监控需要发送微信消息,先参考《推荐一个简单的服务器监控,发送消息给微信的方案「Server酱」》,注册下面需要用的SCKEY
新建api_monitor.sh,内容如下

#!/bin/bash
# Update these for your own settings
declare -A APIS=( [eos-mainnet]=https://eos-mainnet.bcskill.com [get-scatter]=https://nodes.get-scatter.com )
WE_CHAT_WEBHOOK=https://sc.ftqq.com/SCKEY(去上面的参考去申请).send
#最新区块时间`head_block_time`与本地时间存在时差,不确定具体原因,暂时比对时间为容差为24h
DELAY=60*60*24

# Do not change below here
for K in "${!APIS[@]}"
do
    # Check the endpoint
    JSON=$(curl -s ${APIS[$K]}/v1/chain/get_info)

    # Fail if curl was unsuccessful
    if [ $? -ne 0 ]; then
        curl -s -X POST --data "text=\"\`$K\` API node cannot be accessed @ ${APIS[$K]}\"&desp=EOS Monitor Error" $WE_CHAT_WEBHOOK
        continue
    fi

    # Calculate the diff
    HEAD=$(echo $JSON | jq -r .head_block_time)
    BLOCK=$(date --date=$HEAD +"%s")
    NOW=$(date +"%s")
    DIFF="$(($NOW-$BLOCK))"

    # Fail if head block is older than acceptable delay
    if [[ $DIFF -gt $DELAY ]]; then
        curl -s -X POST --data "text=\"\`$K\` API head block time @ ${APIS[$K]}/v1/chain/get_info is lagging more than $DELAY seconds: $HEAD\"&desp=EOS Monitor Error" $WE_CHAT_WEBHOOK
    fi
done

依赖

返回结果依赖jq解析,需要先安装下

sudo apt-get install jq

修改文件权限

chmod 755 api_monitor.sh

运行

每30秒检查一次

watch -n 30 ./api_monitor.sh

等出问题时,会直接发送消息到绑定的微信

参考:https://github.com/BlockMatrixNetwork/eos-bp-failover/tree/master/external-rpc-api-monitor

推荐一款比Scatter易用的EOS Dapp浏览器扩展

前面有篇文章专门介绍了如何使用Scatter扩展 《Scatter的使用及添加测试网络相关设置
虽然介绍很详细了,但是还有有朋友群里留言说不会用,或者弄不清网络设置,身份等到底是做什么用的,还有在与Dapp交互时一些信息,一脸萌币。
今天推荐一款名为DAppPlay的EOS扩展,可以理解为Scatter的优化版本,并且兼容Scatter已有的DApp,非常适合中国人简而美的需求。

下载安装

下载地址:Chrome 商店下载

简单使用

打开安装后的扩展


界面简洁,和MetaMask类似,可以新建或者导入已有的备份。

主界面


主界面可以看出支持EOS和以太坊,但目前以太坊还在开发中,估计不久将支持。

创建账户


创建账户,也比较简洁

激活账户

点击创建完直接跳转到激活账户

点击激活,自动将账户名和公钥带到了一个激活的网页
https://account.eostore.vip/?name=suroubcskill&publicKey=EOS7zPw6ssjf6t5x6SSVwiVBRHrQoHs2yUN7zb6wNZXoHBK273Rue
网站此时在维护,无法看到效果。可以先使用别的App替代激活。

导入账户

我们还是先手动导入一个已存在的账户吧

导入已有钱包或者激活新账户后,进入EOS钱包主页,这里可以转账充值和查看账户余额,并且还有资源的购买和账户交易记录查看等功能。

账户转账

资源设置


包含了常规的资源买卖等功能。

一些设置

在设置中,还可以进行编辑网络、选择语言、备份等操作

相对优点

相比Scatter,这款拓展有以下几个优点:
1.流程简单逻辑清晰,相比Scatter去除了很多不必要的功能,更便于普通用户使用。
2.有详细的EOS账户注册教程,方便很多新用户。
3.可对EOS的资源(CPU、内存、网络)进行配置。
4.同时支持EOS和ETH上的DApp。


拥有EOS账户并配置好相应的资源后,就可通过DAppPlay来使用EOS上面的DApp了
事实上目前EOS的DApp使用还是有很多问题,对DApp感兴趣,想了解更多DApp信息和EOS资源配比问题的朋友,可以加DAppPlay的官方群参与相关的讨论。
QQ群号:808876107

转载自:http://dappp.com/

EOS 主网数据更新,离线数据包

数据下载地址

使用方法

下载最新的数据包

wget https://s3-ap-northeast-1.amazonaws.com/eosstorebp/xxx.tar.gz

解压下载好的数据包

tar -zxvf xxx.tar.gz

解压后会发现数据包中有两个文件blocks,state
将两个文件夹,放到~/.local/share/eosio/nodeos/data,(提前清空目录)
或者自定义data的位置,nodeos启动时添加参数--data-dir 自定义的data目录路径 (注意每次重新启动nodeos,都需要加此参数)
重新启动 nodeos
eosstore提供

安装EOSTracker 获取 EOS MongoDB 数据

本篇文章演示基于EOS Tracker获取和展示EOS MongoDb 数据。
所需的EOS Tracker为一修改版本,支持MongoDb,原版发帖时只支持MySql。

安装php 7.2

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.2

安装PHP扩展

sudo apt-get install php7.2-mongodb
sudo apt-get install php7.2-cli
sudo apt-get install php7.2-xml
sudo apt-get install php7.2-mbstring php7.2-intl php7.2-redis -y
apt-get install composer

获取代码

git clone https://github.com/FeeSimple/eos-tracker.git

开始部署EOS Tracker API

进入eos-tracker/eos-tracker-api,更新安装EOS Tracker API子项目
composer update
composer install
修改MongDB for eos-tracker-api的配置文件
app/config/parameters.yml

# This file is auto-generated during the composer install parameters:
secret: 123 //一般默认为空
mongodb_server: 'mongodb://localhost:27017'
db_name: EOStest
开始运行
php bin/console server:run 0.0.0.0:8000

开始部署EOS Tracker前端项目

进入eos-tracker/eos-tracker-frontend
安装项目依赖

npm i
npm install -g @angular/cli@6.0.8

EOS Tracker是一个基于Angular4的前端,连接到EOS Tracker API。
用于与eos-tracker-api交互的eos-tracker-frontend的配置文件:

src/environments/environment.ts

    export const environment = {
        production: false,
        walletUrl: '//www.bcskill.com',
        appName: 'EOS Tracker',
        logoUrl: '/assets/logo.png',
        apiUrl: '//www.bcskill.com:8000', //修改为与上面API地址和端口一致
        blockchainUrl: '//rpc.bcskill.com:8888' //修改为已同步全部EOS区块的RPC服务器地址
    };

开始启动

ng serve --host 0.0.0.0 --port 4200

常见问题

  • Cannot read property 'write' of undefined
    npm uninstall -g @angular/cli
    npm install -g @angular/cli@6.0.8
  • add-apt-repository: command not found
    sudo apt-get install python-software-properties
    sudo apt-get update
    sudo apt install software-properties-common 
    sudo apt-get update

    参考:stackoverflow

  • ubuntu npm 升级到新版
    (打开连接)