按照本文档的步骤执行,你可以在本地搭建一个 SDAG 区块链,并使用 SDAG 的 jssdk 构建一个命令行钱包来查询和转账。
ubuntu 用户请参考如下安装方式:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
centos 用户请参考如下安装方式:
https://docs.docker.com/install/linux/docker-ce/centos/
fedora 用户请参考如下安装方式: https://docs.docker.com/install/linux/docker-ce/fedora/
Mac 用户请参考如下安装方式:
https://docs.docker.com/docker-for-mac/install/
windows 用户请参考如下安装方式:
https://docs.docker.com/docker-for-windows/install/
sudo gpasswd -a $(whoami) docker
docker pull registry.cn-beijing.aliyuncs.com/sdag/sdag_testnet_dev:latest
docker run --rm -d --name sdag -p 6615:6615 -p 8080:8080 registry.cn-beijing.aliyuncs.com/sdag/sdag_testnet_dev
http://localhost:8080
sudo docker exec -it sdag cat data/sdg/settings.json
返回的结果类似:
拷贝下助记词,供第 7 步使用.
fade aunt crack express uncle fit valley faculty candy toddler buzz pink
在本地计算机(非 docker 里),新建一个名为 samples 的文件夹。
mkdir samples
cd samples
初始化 npm,并安装 SDAG 的 jssdk:sdagwallet.js
npm init
npm isntall sdagwallet.js
新建一个名为 mnemonic.js 的文件,输入以下内容:
该文件使用 mnemonic.js 生成随机助记词
const { default: Wallet } = require("sdagwallet.js");
let wallet = new Wallet();
var mnemonic = wallet.generateMnemonic();
console.log(mnemonic);
执行它:
node mnemonic.js
得到类似下图的结果:
拷贝助记词,并建立一个名为 alice.js 的文件,在 mnemonic = "" 中填入助记词,内容如下:
const { default: Wallet } = require("sdagwallet.js");
//import Wallet from 'sdagwallet.js';
let wallet = new Wallet();
const mnemonic = "april warrior alarm actress end story social palm desert twist knife future";
wallet.configHub("ws://localhost:6615");
wallet.loginWithMnemonic(mnemonic).then(() => {
var address = wallet.getAddress();
console.log("address",address);
wallet.getBalance().then((balance) => {
console.log("balance",balance);
});
});
执行它:
node alice.js
返回的结果如下,能看到 alice 的地址,及余额。
拷贝 alice 的地址,留作 scott 给 alice 转账时使用。
HKIRYKXL65TTTBLIW3CXIYQHGPBX3YGI
新建一个名为 scott.js 的文件,并且把助记词配置为 "fade aunt crack express uncle fit valley faculty candy toddler buzz pink" (在第 6 步时从 docker 里得到的)
const { default: Wallet } = require("sdagwallet.js");
//import Wallet from 'sdagwallet.js';
let wallet = new Wallet();
const mnemonic = "fade aunt crack express uncle fit valley faculty candy toddler buzz pink";
wallet.configHub("ws://localhost:6615");
wallet.loginWithMnemonic(mnemonic).then(() => {
var address = wallet.getAddress();
console.log("address",address);
wallet.getBalance().then((balance) => {
console.log("balance",balance);
});
});
执行它
node scott.js
返回的结果如下:
现在,新建一个名为 scott-to-alice.js 的文件,内容如下:
const { default: Wallet } = require("sdagwallet.js");
//import Wallet from 'sdagwallet.js';
let wallet = new Wallet();
const mnemonic = "fade aunt crack express uncle fit valley faculty candy toddler buzz pink";
wallet.configHub("ws://localhost:6615");
wallet.loginWithMnemonic(mnemonic).then(async () => {
await wallet.getBalance();
wallet.send({
to: 'HKIRYKXL65TTTBLIW3CXIYQHGPBX3YGI',
amount: 10,
text: 'from scott to alice'
}).then(() => {
console.log("ok");
}).catch((err) => {
console.log(err);
});
});
执行它
node scott-to-alice
返回的结果如下:
这说明已经完成转账,接下来,重新获得 alice 的余额:
node alice
返回结果如下:
重新获得 scott 的余额:
node scott
返回结果如下:
转账结束了,上述源码位于: https://github.com/smart-dag/samples.git
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.