为了更容易理解EOSJS是什么,我们可以把它看作是一个用JavaScript就可以轻松控制EOS区块链的库。稍微深入一点,可以说它是很容易使用的EOS(nodeos)的HTTP
API。(就像web3.js对于Ethereum, neon-js对于Neo一个意思)

由于EOSJS还使用来自EOS的HTTP API,BP选择是至关重要的(响应时间、可用性等)。

安装

有两种可以选择的安装方法:

用NPM安装
> npm install eosjs
使用CNS
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/eos.min.js"
integrity=
"sha512-QX0dPq5pyX33coEuy5x1UqKHFDeveQYMp7Sz+qOUwRL9mol4QDvViU+QAjd+k6P7QjPjrDCoyhK1kz2GDxCP9A=="
crossorigin="anonymous"></script>
连接EOS区块链平台

使用EOSJS连接EOS平台
const Eos = require('eosjs'); // Use as below to access localhost Testnet. //
与下面一起进行的话,将接近localhost Testnet. const eos = Eos();
如果EOS还没有用运行在localhost,你运行上面的代码就会得到一个像下面一样的错误提示(具有连接错误的 EOS httpEndpoint
也会有与下面相同的错误):
{ FetchError: request to http://127.0.0.1:8888/v1/chain/get_info failed,
reason: connect ECONNREFUSED127.0.0.1:8888 at ClientRequest.<anonymous>
(/Users/mayajuni/Projects/eos-scan/node_modules/node-fetch/index.js:133:11) at
ClientRequest.emit (events.js:182:13) at Socket.socketErrorListener (_http
_client.js:382:9) at Socket.emit (events.js:182:13) at emitErrorNT
(internal/streams/destroy.js:82:8) at emitErrorAndCloseNT
(internal/streams/destroy.js:50:3) at process._tickCallback (internal/process
/next_tick.js:63:19) name: 'FetchError', message: 'request to
http://127.0.0.1:8888/v1/chain/get_info failed, reason: connect ECONNREFUSED
127.0.0.1:8888', type: 'system', errno: 'ECONNREFUSED', code: 'ECONNREFUSED' }
连接主网络(公有链)
const Eos = require('eosjs'); const eos = Eos({httpEndpoint: 'mainnet
httpEndpoint'});
如果你尝试像上面那样连接,将出现如下错误消息:



即使出现错误,getInfo也是可能的,所以让我们使用这个来检查并输入chainId。用个公用的:
In the case of Mainnet,
aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 isthe common
chainId, so enter this.
如果使用上述方法进行连接,则调用第一个get_info API,如下所示。(一开始,我不太清楚,每次都给它连接,这给移动端带来了大量的数据使用。)



你可以在https://api.eosnewyork.io <https://api.eosnewyork.io>
中检查公有链地址。因为每一个BP都有不同的信息提供,响应时间等等,所以找到并选择适合你需要的BP是很关键的。(也是一个直接获取完整节点和连接的方法)。

eosjs连接EOS的配置
const Eos = require('eosjs'); const config = { chainId: null, // 32 byte (64
char) hex string keyProvider: ['PrivateKeys...'], // WIF string or array of
keys.. httpEndpoint: 'http://127.0.0.1:8888', expireInSeconds: 60, broadcast:
true, verbose: false, // API activity sign: true }; const eos = Eos(config);
这一部分的详细描述是在github上。(github-configuration)

getInfo—api

你可以得到EOS的基本网络信息。代码如下所示:
const eos = Eos().getInfo((error, info) => { console.log(error, info); });
一个有趣的情况:其他API都是基于承诺机制的,但是只有getInfo是回调方法。

返回值如下所示:
{ server_version: '36a043c5', chain_id:
'aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906',
head_block_num:5469047, last_irreversible_block_num: 5468711,
last_irreversible_block_id:
'00537227a657d1f4fd74de877e9ad1a3839540ece45eedeaf177b20e51b2da1b',
head_block_id:'005373770504c59e992214b3056c7bdabb07c53c5a9c4785909b90fe595a119f'
, head_block_time:'2018-07-12T08:58:05.500', head_block_producer: 'helloeoscnbp'
, virtual_block_cpu_limit:200000000, virtual_block_net_limit: 1048576000,
block_cpu_limit:199900, block_net_limit: 1048576 }
如果你不知道上面提到的chainId(连接EOS所需要),你可以通过getInfo获取并使用chainId。

这篇文章写得很简单,因为它只是使用EOSJS的安装、连接和 getinfo 的第一步。以后我们会更深入地研究EOSJS。

另:《EOS智能合约与DApp开发入门》教程已经上线,爱学习等不及的可以抓紧体验一下:

EOS教程 <http://xc.hubwiz.com/course/5b52c0a2c02e6b6a59171ded?affid=727csdn>


本教程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用React和EOS的各知识点完成一个便签DApp的开发。

* web3j教程 <http://xc.hubwiz.com/course/5b2b6e82c02e6b6a59171de2?affid=727csdn>
,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
* 以太坊教程 <http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=727csdn>
,主要介绍智能合约与dapp应用开发,适合入门。
* 以太坊开发 <http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6?affid=727csdn>
,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
* python以太坊
<http://xc.hubwiz.com/course/5b40462cc02e6b6a59171de4?affid=727csdn>
,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
* php以太坊 <http://xc.hubwiz.com/course/5b36629bc02e6b6a59171de3?affid=727csdn>
,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
汇智网原创翻译,转载请标明出处。原文
<http://blog.hubwiz.com/2018/07/26/eos-eosjs-GettingStarted/>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信