-
钱包项目整体架构设计
本课程是EOS钱包开发,后端使用的NodeJS搭建,客户端使用的web前端,VSCode开发工具,Ubuntu16.04开发环境,node v8.11.3,npm v5.6.0。一、前端架构咱们的开发重点是在后端实现上,因此为了让大家快速上手,web客户端没有使用其它流行的框架,这里只使用了jQuery框架简化代码,另外还有个jQuery Validate 插件简化了表单验证。 web前端整体技术: html + css + javascript + jQuery。 web前端功...…
-
钱包模块:新建钱包、解锁钱包、导入账号
本章的重点是使用RPC接口访问EOS区块链实现钱包的相关功能。一、使用RPC访问EOS区块链我们使用官方提供RPC接口轻松访问EOS区块链,首先打开开发者中心网站。在V1.1版本中支持wallet RPC API,而在v1.2版本中nodeos已经删除了钱包API,应该直接在keosd中使用API,它的API定义与之前一样。我们可以在v1.1的版本中查看钱包API,在nodeos中不能再添加钱包插件以启动keosd了,需要通过命令keosd单独启动keosd应用程序,注意它的端口不能与no...…
-
详解与获取RAM、NET、CPU资源数据
课程目标 账号在各种网络中的资源的区别 理解EOS的网络资源RAM、NET、CPU 如何获取网络资源相应的数据 详细说明网络资源数据的各项指标前言基于本地网络与真实的正式网络和测试网络在功能上有一个重要的区别:网络资源的利用机制。前面的课程在本地网络中的交易都是免费、没有限制资源的,但是在正式网络或测试网络中是需要消耗资源的,下面我们将介绍基于测试网络的资源管理。一、账号在各种网络中的资源的区别1. 账号在本地网络中的资源先来回顾一下前面章节“使用cleos管理账号权限”中查看账号...…
-
深入浅出EOSJS:连接到主网、测试网、交易
EOSJS是EOSIO区块链的通用库,这里使用eosjs的目的是使用eosjs库中封装的交易的接口,使用及其简单,可在此处查看eosjs开发手册。一、EOSJS简单用法安装EOSJSnpm install eosjs获取当前区块链的信息和查询指定区块的信息。Eos = require('eosjs')eos = Eos()eos.getInfo((error, result) => { console.log("info:", error, result)})eos.ge...…
-
新建账号:设置多权限配置
在上一章中我们学习到了如何创建钱包,以及导入私钥,那么这一章的重点就是管理钱包里的账号。一、介绍说明在开发账号模块之前,我们需要先用cleos工具帮我们创建一个账号,是什么原因需要它去创建和如何创建的请查看“使用cleos管理账号权限”章节的内容,这样我们才好使用开发的钱包项目查看账号详情以及创建账号。创建账号属于一个交易,若使用RPC接口是非常的繁琐容易出错,这里我们使用eosjs库中封装的交易的接口,使用及其简单,eosjs的使用说明请查看“深入浅出EOSJS:连接到主网、测试网、交易...…
-
抵押和赎回NET与CPU带宽
课程目标 计算NET带宽价格 计算CPU带宽价格 抵押EOS获取NET带宽 抵押EOS获取CPU带宽 赎回NET带宽与获取赎回金额 赎回CPU带宽前言现在我们能对RAM进行交易了,还差的NET、CPU交易将是本章重点。同样,交易NET、CPU贷款的前提是我们需要知道它的价格,即买1KB NET带宽和1ms CPU带宽需要抵押多少EOS,赎回1个EOS能获得多少NET、CPU带宽。这就需要我们去链上查询数据库获取相应的实时的数据,再进行计算拿到价格。下面我们来一步步实现,最后展示...…
-
基于测试网络进行开发
课程目标 如何正确连接到测试网络 使用jungle创建我的第一个账号 在jungle索取EOS测试币 在项目中创建账号前言咱们的课程到目前已经完成基于本地网络的EOS钱包开发,有三个模块:钱包模块、账号模块、转账模块,另外也能使用eosjs、cleos等。但是基于测试网络会有一些坑和区别,下面我们一起来学习。一、如何正确连接到测试网络1. 常见错误学习快的同学可能自己已经提前尝试连接到测试网络,但是会报错{"code":0,"name":"exception","what":"un...…
-
使用cleos工具管理账号权限
在上一篇文章中,我们创建了一个新钱包并导入了一对公私钥,但是该钱包中并没有账号,在EOS区块链中创建账号是很扯蛋的事,必须使用已有的EOS账号才能创建新的EOS账号,使创建账号的时候便于扣费,因为创建的账号数据会占用区块链生产节点的内存资源,所以每创建一个EOS新账号都需要其他EOS账号消耗一定量的EOS来帮忙创建。那么我们找谁来创建呢?谁又有EOS账号呢? EOS主网中,最初始的EOS账号由EOS主网在映射阶段创建完成。 在本地网络中,最初始的EOS账号在系统启动...…
-
买入卖出RAM
课程目标 如何获取全网RAM相关的公共数据 如何使用Bancor算法计算实时的RAM价格 如何购买RAM 如何卖出RAM前言现在我们能获取到了基于测试网络的账号的网络资源数据,现在我们就介绍如何交易RAM。交易RAM的前提是我们需要知道它的价格,即买1KB内存需要花费多少EOS,卖1个EOS能获取多少内存。这就需要我们去链上查询数据库获取相应的实时的数据,再进行计算拿到单价。下面我们来一步步实现,最后展示在项目中的相应源码。一、获取全网RAM数量全网RAM数量的数据是存在数据库中的...…
-
EOS开发环境搭建
本课程是EOS钱包开发,可以选择以下三种网络进行开发: 主网 Jungle 测试网络 本地网络咱们在开发阶段一般选择测试网络和本地网络皆可,测试完成后在部署到主网。这里我们先选择在本地网络上进行开发,因为在Jungle 测试网络中不支持wallet的RPC接口,因为它作为一个公共的服务节点,是不可能帮助大家管理私钥的,那样会非常不安全,大家都会共用相同的钱包和私钥。最后我们将使用本地搭建的keosd服务管理钱包,并连接到Jungle 测试网络中。EOS支持的操作系统 Amazon ...…
-
Eos代币转账交易
layout: posttitle: “EOS代币转账交易”date: 2019-03-06description: “EOS钱包”tag: EOS,钱包keywords: “钱包”—一、使用Cleos在本地网络发布代币发布代币后转账给钱包应用里的账号,接下来我们才能使用应用程序去进行转账交易。发布代币的过程这里使用Cleos命令行工具,咱们拓展钱包应用程序的时候也可以添加发布代币这样一个功能,这里就不做这个次要的功能了。1. 部署eosio.token合约这一步骤咱们在环境搭建章节已经完...…
-
EOS不得不说的一些概念
EOS是什么EOS是Enterprise Operation System的缩写,它是商用分布式应用设计的一款区块链操作系统。EOS是引入的一种新的区块链架构EOSIO,用于实现分布式应用的性能扩展。EOS并不像比特币和以太坊那样是货币,而是基于EOSIO软件项目之上发布的代币,被称为区块链3.0。EOS的主要特点 EOS有点类似于微软的windows平台,通过创建一个对开发者友好的区块链底层平台,支持多个应用同时运行,为开发dAPP提供底层的模板。 EOS通过并行链和DPOS的方式解...…
-
钱包项目整体架构设计
layout: posttitle: “钱包项目整体架构设计”date: 2019-02-26description: “以太坊钱包”tag: 以太坊,钱包keywords: “钱包”— 本课程是以太坊钱包开发,后端使用的NodeJS搭建,客户端使用的web前端,VSCode开发工具,Ubuntu16.04开发环境,node v8.11.3,npm v5.6.0。在Kovan测试网络上进行开发。一、前端架构咱们的开发重点是在后端实现上,因此为了让大家快速上手,web客户端没有使用其它流行...…
-
钱包地址生成过程
课程目标 理解什么是隔离见证 交易地址类型 编程实践:生成隔离见证地址大家可能会想,这个隔离见证对我们比特币钱包开发有什么影响呢?接下来你就知道了。一、什么是隔离见证隔离见证的英文叫做SegWit,是Segregated Witness的简称,隔离见证是对比特币提出的一种升级方案,用于解决比特币面临的一系列严重问题,由Pieter Wuille(比特币核心开发人员、Blockstream联合创始人)在2015年12月首次提出。主要由BIP-141定义。我们可以这样来理解隔离见证:见证...…
-
解锁钱包账号姿势二:keystore+密码
一、储备知识使用web3通过keystore+密码解锁账号通过keystore+密码解锁账号需要使用web3.js的如下API,相当于解密keystore。APIweb3.eth.accounts.decrypt(keystoreJsonV3, password);参数: keystoreJsonV3 - String: 要解密私钥的keystore。 password - String: 加密keystore文件的密码,一般为创建账号时的密码。返回值:Object:解密的帐户对象。例...…
-
解锁钱包账号姿势三:助记词
一、通过助记词获取所有关联的账号:公钥、私钥、地址需要使用bip39协议将助记词转换成种子,再通过ethereumjs-wallet库生成hd钱包,根据路径的不同从hd钱包中获取不同的keypair,keypair中就包含有公钥、私钥,再通过ethereumjs-util库将公钥生成地址,从而根据助记词获取所有关联的账号,能获取到公钥、私钥、地址等数据信息。可见助记词可以获取多个账号私钥,它比私钥重要性更高,必须妥善保管。HD 钱包和BIP协议的相关概念请查看”04-密码、私钥、keyst...…
-
解锁钱包账号姿势一:私钥
一、储备知识1. 使用web3通过私钥解锁账号通过私钥解锁账号需要使用web3.js的如下APIAPI***参数:**** privateKey- String:要解锁账号的私钥。***返回值:***Object:一个帐户对象。***例子***web3.eth.accounts.privateKeyToAccount(‘0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709’); { address: ‘...…
-
深入:如何通过钱包集成第三方数字货币以及转账实现
一、储备知识1. 获取Token代币本章主要内容是Token代币转账交易,所以前提条件是要拥有Token代币(才能转账)。如何获取Token代币?主要有以下三种方式: 别人给您的账号地址转账获得 发布Token代币 在主网上币币交易在本教程中我们学习的重点是钱包开发,因此我们使用其中的Kovan测试网络获取Token代币(因为私网没有搭建,在主网交易需要花费gas),采用第一种途径:别人给您的账号地址转账获得。在这里博主提供给大家转下面的KYXY代币(使用于Kovan测试网络),如果...…
-
浅出:如何实现以太币转账
一、储备知识1. 获取以太币本章主要内容是以太币转账交易,所以前提条件是要拥有以太币(才能转账)。以太币数量是记录在账号地址上的,账号在不同网络间的以太币余额是不同步的,主要包含: 主网 Kovan测试网络 Ropsten测试网络 Rinkeby测试网络 本地私有网路比如你的账号0xbb5c219853cd0c8b86f463f9b7b480447bcfb57e在Ropsten测试网络上拥有100ETH,而它在主网上的ETH可能为0,也就是说其它网络上的ETH余额与Ropsten...…
-
密码、私钥、keystore与助记词之间的爱恨情仇
在前面的教程中我们对以太坊钱包已经有了一定的认识,上一章也重点介绍了账号地址的生成过程,在以太坊钱包中一个重点就是账户系统,在这个模块中很多初学同学不是很清楚密码、keystore、助记词与私钥它们之间的关系。下面我们来看看它们之间到底有着怎样的爱恨情仇,让大家琢磨不透。一、理解密码、私钥、keystore与助记词1. 密码密码不是私钥,密码可以进行修改或重置。它主要用途有两个,一是转账时候的支付密码,二是用 keystore 导入钱包时需要输入的密码,用于解锁keystore。在钱包...…