井通区块链数据上链介绍
1、概述
本文主要描述井通区块链上通过Memo的方式进行数据上链,以及进行数据上链之后的数据查询等。 基本流程如下:
1) 创建钱包
2) 激活钱包
3) 抽取业务数据 4) 业务数据上链 5) 上链数据获取
2、操作流程
操作流程采用井通区块链 rest api的测试环境,api版本为V2。 测试环境API的地址为: /v2。 正式环境api的地址为: /v2 。
1)创建钱包 接口:/v2/wallet/new,GET方法
例子: /v2/wallet/new
返回结果:
{"success": true, "status_code": "0", "wallet": {"secret": "spiYeKYjGr8QnhLW5kH4R7gEJMLEy","address": "jZaGgNjPqPbiHLr9V3WZANQzVMnTSyXo7" }}
返回结果说明:
注意:井通区块链创建的钱包缺省没有激活,不能正式使用。要激活钱包,需要转入至少25个SWT。
2)激活钱包
激活钱包操作其实就是调用转账支付接口,向一个新钱包转入超过25SWT就自动激活。 接口:/v2/accounts/{:source_address}/payments,POST方法
例子:/v2/accounts/jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF/payments
POST参数:
{"secret": "sha4eGoQujTi9SsRSxGN5PamV3YQ4", "client_id": "fnwtest03190001","payment": {"source": "jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF", "destination": "jwCPxksQzsfdrn3oo8doqb5YmvxFJsFbda", "amount": {"value": "25.00", "currency": "SWT", "issuer": ""},"choice": "","memos": ["hello world", "测试激活钱包"]} }
返回结果:
{"success": true,"status_code": "0","client_id": "fnwtest03190001","hash": "496FA965905628B46F50574B85B5FDCBA4367F236A8913E3C783B140D4804C9D", "result": "tesSUCCESS","fee": 0.01}
返回参数说明:
3)抽取业务数据 用户将业务系统里面需要上传的数据转化为字符串,以便存入字符数组中。如果抽取的业务数据比较复杂,可以用JSON格式进行封
装,这样原则上可以包含任意结构的数据。例如: 数据类型:string
数据内容:hello world
准备好数据之后,即可以调用接口进行数据上传。详细情况参见下文。
4)业务数据上链
业务数据上链也是调用转账支付接口,发送一笔交易,交易里面附带备注信息(memos),在memos里面可以存放组织好的业务数 据。业务数据采用字符数组的形式传入memos,字符数组里面可以定义JSON结构的数据。
备注信息memos的大小有限制,目前是2k大小。如果需要上传大量数据,可以拆分成几条交易。如果需要上传文件,那么需要另外 的云存储服务或者分布式文件存储服务。
由于这里发送交易的目的是为了数据上链,所以发送的资产数量可以自定义一个合适的数量。 接口:/v2/accounts/{:source_address}/payments,POST方法 参数和上面激活钱包里面的一样。只是具体提交的数据不同。 例子:/v2/accounts/jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF/payments POST参数:
{"secret": "sha4eGoQujTi9SsRSxGN5PamV3YQ4", "client_id": "fnwtest03270001","payment": {"source": "jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF", "destination": "jwCPxksQzsfdrn3oo8doqb5YmvxFJsFbda", "amount": {"value": "0.000012", "currency": "SWT", "issuer": ""},"choice": "", "memos": ["data", "data"] }}
5)获取单个上链数据
获取单个上链数据就是调用获取交易记录信息接口。从交易记录信息里面获取Memos,然后解析数据,从而得到上链数据。
接口:/v2/accounts/{:address}/transactions/{:id},GET方法 参数:
例子:
/v2/accounts/jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF/transactions/6689A95AD2EA0E7246434CD47B78DF6C7A 8134B70DA73541BB3F46743621F018
返回结果:
6)获取上链数据记录 获取多条上链数据记录就是调用获取交易记录接口。获取交易记录后,进行遍历操作,取出每条交易记录里面的Memos,然后解析
数据,从而得到上链数据。
接口:/v2/accounts/{:address}/transactions,GET方法
接口参数:
例子1:/v2/accounts/jpLpucnjfX7ksggzc9Qw6hMSm1ATKJe3AF/transactions 返回结果:
以上例子没有带可选参数,缺省获取10条记录。返回marker标记,代表本次查询到了这个位置,应用程序可以保存下来,下次可以 从标记的地方继续往下查询。
作为一个开发者,有一个学习的氛围跟一个交流的圈子特别重要,下面是我们的社区交流群,不管你是小白还是大牛欢迎入住,分享经验、讨论技术、社区开发。大家一起交流学习共同成长!希望开发者少走弯路。
1.社区开发者大赛 QQ 群:568285439
2.社区论坛:
3.社区公众号:SWTC 互动社区、SWTC 社区
4.github:/swtcpro