由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。

我们在构建什么?

我们正在构建一个简单的todo dApp。我们将为CRUD(创建,读取,更新和删除)操作编写智能合约,并将使用EOSJS和scatter与已部署的合同进行交互。CRUD操作包括创建,完成,删除和获取待办事项。我们将使用Jungle Testnet来部署我们的智能合约。

必备知识

  • EOS
  • EOSJS
  • Scatter

Scatter设置

Scatter用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。要设置Scatter钱包,请关注这个视频。在Scatter设置中,必须在网络中添加Jungle testnet,其中包含以下详细信息:

Name: Jungle Testnet
Domain or IP: dev.cryptolions.io // It might be changed, so check for the latest one
Port: 38888
chainId:038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca

添加网络配置后,现在通过输入密钥对部分然后单击新建将你的私钥导入钱包。根据下图所示的表格填写关键信息。

image

现在,您应该使用密钥对添加标识。如果没有用,请转到“身份”部分并添加或编辑现有身份。在身份部分,选择网络,然后选择密钥对,它会要求您在链网上添加与该密钥相关联的帐户。 您应该添加具有活动权限的帐户。

你的scatter已全部设置好并可以在我们的dApp中使用。

image

智能合约

要部署todo智能合约,请按照本文将其部署到Jungle Testnet上。确保能够从文章中提到的命令行与Testnet进行交互。

与Testnet交互

我正在使用ReactJS作为前端部分。完整的逻辑和流程位于src文件夹中名为index.jsx的单个文件中。以下是配置对象:

// Config for scatter and eosjs
const EOS_CONFIG = {
contractName: “xyz”, // Contract name
contractSender: “xyz”, // User executing the contract (should be paired with private key)
network: {
protocol: “http”,
blockchain: “eos”,
host: “dev.cryptolions.io”,
port: 38888,
chainId: “038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca” // get this using http://dev.cryptolions.io:38888/v1/chain/get_info
},
eosOptions: {}
};

与scatter交互:

import EOS from ‘eosjs’;
document.addEventListener(`scatterLoaded`, this.onScatterLoad);
onScatterLoad = () => {
const scatter = window.scatter;
window.scatter = null;
// Here, we are connecting scatter with eosjs so that the transactions can be signed using keys present in scatter
this.eosClient = scatter.eos(
EOS_CONFIG.network,
EOS,
EOS_CONFIG.eosOptions,
EOS_CONFIG.network.protocol
);
// scatter object to collect the information present in wallet like accounts or public key
this.scatter = scatter;
// to load the data present in our table
this.loadTodos();
};

现在,在这个对象中,我们有两个引用EOSClient和scatter,我们将分别用它们与EOS区块链和钱包进行交互。

我正在添加一个功能的代码,以使用EOSClient获取存储的数据(所有todos),你可以在src/index.jsx中检查其余功能:

loadTodos() {
this.eosClient.getTableRows({
code: EOS_CONFIG.contractName,
scope: EOS_CONFIG.contractName,
table: “todos”,
json: true
}).then(data => {
this.setState({ todos: data.rows });
}).catch(e => {
console.error(e);
});
}

要获取帐户,请使用scatter对象的getIdentity()

const { accounts } = await scatter.getIdentity({
accounts: [config.EOS_CONFIG.network]
});

这样就ok。

总结

其中一个最大的优点是你无需在机器上维护钱包,scatter为我们管理一切。还有其他方法来托管钱包,但scatter对最终用户负责,开发人员不需要处理任何私人信息。github库

分享一个交互式的在线编程实战,EOS智能合约与DApp开发入门

EOS教程

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

这里是原文

EOS区块链上EOSJS和scatter开发dApp相关推荐

  1. eos区块链 java客户端_在EOS区块链上使用EOSJS和scatter开发dApp

    由于我一直在深入研究EOS dApp的开发,我看了不少好文章.在这里,我汇总了下做一些研究后得到的所有知识.在本文中,我将解释如何使用EOSJS和scatter.我假设你对智能合约以及如何在EOS区块 ...

  2. EOS区块链DApp去中心化应用汇总

    EOS最近一直在区块链新闻中.它的主干网(公有链)发布了,人们仍然对它们持怀疑态度.在101Blockchain.com网站上,我们知道会有紧张的投资者.怀疑的分析家和像你一样好奇的读者.这就是为什么 ...

  3. ET钱包2月25日早报 | 过去24小时EOS区块链活跃度指数蝉联榜首

    EOS不是完美的区块链,这个世界也不存在完美的区块链.然而,存在着一批又一批对EOS精雕细琢的人,他们在不断地加强EOS.有些问题并不可怕和严重,因为,人的智慧总能够发现方法,解决这些问题. 2019 ...

  4. EOS区块链一周要闻回顾(2.17-2.23)

    EOS 账户数 截至 2 月 23 日晚,EOS 账户数为 1,741,474 个,EOSIO 挑战赛报名人数 386 人. BM:追求言论自由,热爱不同而非强求遵从 BM 在推特上就文明社会话题发表 ...

  5. 如何使用docker和docker-compose在本地Testnet上开发EOS区块链

    EOS区块链的开发并不是立竿见影的,因为需要一些非显而易见的组件,需要对它们进行配置和协同工作. nodeos:块生成器守护程序. keosd:钱包守护进程,存储私钥. eosio-cpp:智能合约编 ...

  6. 第一次开发EOS区块链的经验总结

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  7. eos区块链 java客户端_分享一个网友第一次开发EOS区块链总结的经验

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

  8. EOS区块链技术开发(〇)起源

    EOS区块链技术开发(〇)起源 1 Why 1.1 EOS区块链 1.2 CSDN 2 How 3 What 参考资料 1 Why 1.1 EOS区块链 为什么选择EOS呢?自然是因为性能.ETH的性 ...

  9. 分享网友第一次开发EOS区块链总结的经验

    在处理项目时,用Java Connector for EOS区块链编写: 创建钱包 创建帐户 创建交易 创建签名交易 在帐户之间转移代币 我遇到了各种和运行本地EOS节点需要遵循的基本步骤.这个小指南 ...

最新文章

  1. Unbuntu18.04通过apt源方式安装mysql5.7.22
  2. C#基础知识点梳理一
  3. 将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1 RC 1
  4. 17 SD配置-企业结构-分配-分配允许的信用控制范围给公司码
  5. iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断)...
  6. archlinux grub启动无win7_CentOS Linux操作系统各种启动和服务管理
  7. 手把手入门三菱PLC FX2N系列(一)安装GX works2 、 连接PLC、基本操作
  8. 教育机构如何从0开始做抖音获客
  9. 实体消歧、实体统一和指代消歧
  10. Codeforces 235C Cyclical Quest
  11. python量化股票源码_使用Python写一个量化股票提醒系统
  12. 电商 关注 取消关注 人数+-
  13. Redis的初步使用教程
  14. HTMLCSS简单学习,看这篇就够了!
  15. get方法改成post
  16. 中科院计算所体系结构国家重点实验室招收实习生
  17. Android 11.0 支持exfat格式
  18. 纯css就能实现可点击切换的轮播图,feel起来很丝滑
  19. ES状态查询相关API
  20. Flash MX 2004 编程(AS2.0)教程(一)

热门文章

  1. SAP GRC – 企业风险合规治理 深入浅出
  2. python第一天---------了解python
  3. 笔记本电脑开机,连着wifi无法上网的解决办法
  4. 苹果高通之基带芯片战争
  5. 【Shader】扭曲能量罩特效
  6. 「Redis数据结构」哈希表(Dict)
  7. 原创设计和尖端创新产品齐聚全球最大家具展中国家博会(广州)
  8. Linux操作系统的安装
  9. 查看Linux系统的初始安装时间
  10. 弘辽科技:淘宝店铺怎么补流量单?淘宝如何快速获取流量?