井通区块链开发指南

井通区块链介绍

井通区块链是基于区块链技术构建的一个去中心化互享生态的互联网交易网络,简单点说,就是区块链技术+交易网络。

井通区块链开发示例[以简单的抽奖为例]

目前主要针对一些业务需要使用区块链进行信息存证类的开发人员

1. 选定井通区块链部署环境
井通公链环境是:https://api.jingtum.com/
井通测试环境是:https://tapi.jingtum.com/
其他的环境,比如http(s)://{ip}:{port}/
备注:在示例中,使用井通测试环境,https://tapi.jingtum.com/

2. 使用API还是SDK进行开发

基于JSON的RESTful API开发,比较简洁,适合任何语言,不方便的地方在于,需要在不同的语言中,处理JSON格式,获取需要的数据;

- 具体文档见附件[井通标准接口-v1.0.0.pdf];

SDK, 是API在具体语言中的实现,使用SDK开发,上手与开发都很方便,目前支持四种语言,php-jingtum-sdk, python-jingtum-sdk, nodejs-jingtum-sdk以及java-jingtum-sdk,需要熟悉井通区块链里边一些概念,比如银关等。

- SDK使用具体见,http://developer.jingtum.com/
- 相关SDK的代码在:
   https://github.com/jingtum
   https://github.com/jingtum/jingtum-php-sdk
   https://github.com/jingtum/jingtum-python-sdk
   https://github.com/jingtum/jingtum-js-sdk
   https://github.com/jingtum/jingtum-java-sdk

在示例中,使用API进行开发,需要对API进行简单的封装
具体见附件[lottery.tar.gz里边的modules/jingtum-api/ApiRequest.js]
程序代码:  [选择]
const request = require('request');
...
const CREATE_WALLET_PATH = '/wallet/new';
const BALANCE_PATH = '/accounts/{0}/balances';
const PAYMENT_PATH = '/accounts/{0}/payments?validated={1}';
const TRANSACTION_LIST_PATH = '/accounts/{0}/transactions';
...
var apiRequest = {
    createWallet: function (callback) {
        var url = CREATE_WALLET_PATH;
        url = config.api.url + config.api.version + url;
        request(url, function (err, res, data) {
            var _data = JSON.parse(data);
            if (true === _data.success) {
                console.log('create wallet:', _data.wallet.address);
                callback(null, _data.wallet);
            } else {
                callback(null, null);
            }
        });
    },
    getBalance: function (address, callback) {
        ...
    },
    sendGift: function(dest, callback) {
        ...
    },
    transfer: function(sourceAddress, sourceSecret, destAddress, amount, memos, validated, callback){
        ...
    },
    submitPayment: function (wallet, payment, client_id, validated, callback) {
        ...
    },
    getTransactionList: function (address, callback) {
        ...
    }
};

module.exports = apiRequest;

3. 业务分析

抽奖这个示例,业务比较简单,设定抽奖目标,不同的用户表达抽奖意愿之后,等待抽奖结果。

4. 业务流程设计

- 创建抽奖目标
- 用户对抽奖目标进行抽奖
- 通过一定的逻辑,计算并回复中奖用户

5. 业务上链设计

具体见附件[lottery.tar.gz里边的modules/lottery-api/LotteryRequest.js]
- 为抽奖目标创建帐户
- 为每个用户创建帐户
- 用户对应的帐户向抽奖目标对应的帐户发送交易,表达抽奖意愿
- 抽奖目标对应的帐户向中奖的用户对应的帐户发送交易,说明该用户中奖

其他相关开发资源


获得井通区块链相关信息

https://www.npmjs.com/package/jingtum-lib

npm install jingtum-lib

如下就是使用jingtum-lib来监听井通区块链生成区块的事件,并返回当前区块相关信息

程序代码:  [选择]
var Jingtum = require('jingtum-lib');

//ws://ts.jingtum.com:5020
//wss://hc.jingtum.com:5020
var remote = new Jingtum.Remote({
  server: 'ws://ts.jingtum.com:5020',
  local_sign: false
});

remote.connect(function(err, ret){
  if(err){
    console.log('connect to jingtum failed');
  }else{
    console.log('connect to jingtum');
  }
  remote.on('ledger_closed', function(data){
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值