前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >创建Ripple山寨币

创建Ripple山寨币

作者头像
望天
发布2018-08-02 11:28:47
7690
发布2018-08-02 11:28:47
举报
文章被收录于专栏:along的开发之旅

下文是在Linux下写的,Linux下没有安装中文输入法,所以全是英文,不过没有复杂单词,阅读难度不大。这篇文章是这几天摸索创建山寨ripple币时的笔记,记录了如何创建新的Ripple创世账本,如何用ripple-api来进行交易。

create fake-ripple and test it

edit ripple sourcecode to create new Genesis Ledger

1. edit Ledger to create new Genesis Ledger

replace “masterpassphrase” with what you like.

代码语言:javascript
复制
generateSeed("masterpassphrase");

2. log out AccountId and secret of new Genesis Ledger

代码语言:javascript
复制
    auto const seed = generateSeed("masterpassphrase");
    auto genesisKeyPair = generateKeyPair(KeyType::secp256k1, seed);
    PublicKey genesisPublicKey = genesisKeyPair.first;
    SecretKey genesisSecretKey = genesisKeyPair.second;
    auto const humanSecretKey = toBase58(seed);

    static auto const id = calcAccountID(genesisPublicKey);
    auto const humanId = toBase58(id);

    JLOG(m_journal.warn())
        << " Ledger printPublicKeyAndSecretKey:"
        << " Ledger PublicKey:" << genesisPublicKey
        << " Ledger AccountId:" << id
        << " Ledger HumanAccountId" << humanId
        << " Ledger SecretKey:" << genesisSecretKey.to_string()
        << " Ledger HumanSecretKey:" << humanSecretKey;

run ripple server and use ripple-api to exchange

1. run ripple in stand-alone mode

sudo ./rippled -a --start --conf=/home/along/CLionProjects/ripple-test/cfg/rippled-example.cfg

2. use ripple-api to payment

代码语言:javascript
复制
'use strict';
const RippleAPI = require('ripple-lib').RippleAPI; // require('ripple-lib')

// const address = 'INSERT ADDRESS HERE';
// const secret = 'INSERT SECRET HERE';
const gesisAccount = {
  secret: "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
  address: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
};

const myAccount = {
  secret: "ssEz4WN91XDhEXCYMS2GXhfCd3Ji5",
  address: "r3DoZn2koSVyewVzctLnG2XJSe9nixyGfP"
};

const api = new RippleAPI({ server: 'ws://localhost:6006' });
// const instructions = { maxLedgerVersionOffset: 5 };

const payment = {
  source: {
    address: gesisAccount.address,
    maxAmount: {
      value: '10000',
      currency: 'XRP'
    }
  },
  destination: {
    address: myAccount.address,
    amount: {
      value: '10000',
      currency: 'XRP'
    }
  }
};

function quit(message) {
  console.log(message);
  process.exit(0);
}

function fail(message) {
  console.error(message);
  process.exit(1);
}

api.connect().then(() => {
  console.log('Connected...');
  return api.preparePayment(gesisAccount.address, payment)
    .then(prepared => {
      console.log('Payment transaction prepared...');
      console.log(prepared);
      const { signedTransaction } = api.sign(prepared.txJSON, gesisAccount.secret);
      console.log('Payment transaction signed...');
      console.log(signedTransaction);
      api.submit(signedTransaction).then(quit, fail);
    });
}).catch(fail);

3. advance ripple ledger

./rippled ledger_accept --conf=/home/along/CLionProjects/ripple-test/cfg/rippled-example.cfg

4. get account info

代码语言:javascript
复制
'use strict';
const gesisAccount = {
    secret: "snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
    address: "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh"
};

const myAccount = {
    secret: "ssEz4WN91XDhEXCYMS2GXhfCd3Ji5",
    address: "r3DoZn2koSVyewVzctLnG2XJSe9nixyGfP"
};

const RippleAPI = require('ripple-lib').RippleAPI;

const api = new RippleAPI({
    //   server: 'wss://s1.ripple.com' // Public rippled server
    server: "ws://localhost:6006"
});

api.connect().then(() => {
    /* begin custom code ------------------------------------ */
    console.log('getting account info for', myAccount.address);
    return api.getAccountInfo(myAccount.address);

}).then(info => {
    console.log(info);
    console.log('getAccountInfo done');

    /* end custom code -------------------------------------- */
}).then(() => {
    return api.disconnect();
}).then(() => {
    console.log('done and disconnected.');
}).catch(console.error);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年06月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • create fake-ripple and test it
    • edit ripple sourcecode to create new Genesis Ledger
      • 1. edit Ledger to create new Genesis Ledger
      • 2. log out AccountId and secret of new Genesis Ledger
    • run ripple server and use ripple-api to exchange
      • 1. run ripple in stand-alone mode
      • 2. use ripple-api to payment
      • 3. advance ripple ledger
      • 4. get account info
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档