App - 链码 - 链
系列索引: 上链与背后的流程 | 联盟链开发(一) 动手编 SDK | 联盟链开发(二) SDK 1.0 版本的打造 | 联盟链开发(三) 将 SDK 发布到 PIP | 联盟链开发(四) 什么样的数据应该上链?| 联盟链开发 (五) BSN 相关问与答 | 联盟链开发(六) 链上简历应用 — 设计 | 联盟链开发(七) FISCO BCOS 介绍 | 联盟链开发(八) WeIdentity 极速体验 | 联盟链开发(九) 给Remix升个级 | 联盟链开发(十) 伪代码简述 ECDSA 签名过程 | 联盟链开发(十一) WeIdentity 的多签及限量凭证的实现 | 联盟链开发(十二)
这是基于 BSN(区块链服务网络)进行联盟链开发的系列教程的第一篇,主要包含以下两点内容:
- 运行示例代码,体验上链操作
- 简要分析 BSN 上应用的基础架构
https://github.com/leeduckgo/bsn_py
$ git clone https://github.com/leeduckgo/bsn_py.git
$ cd bsn_py
$ virtualenv --no-site-packages venv
$ source venv/bin/activate
$ pip3 install -r requirements.txt
$ python3 manage.py runserver
运行成功后会显示已在8000端口启动服务。
上链
与此同时,控制台中会显示传回的交易 id:
通过 Key (唯一标识码)进行查询:
通过示例代码,我们可以感知到 BSN 作为「区块链服务网络」,真正实现了上链「顺滑而简单」。
那么,在刚才那个过程中,究竟发生了什么事?我们可以来分析下源码 ——
打开bsn_test > views.py
:
我们会看到刚才点击「保存上链」时所执行的函数:
def save_data(request):
...
url = 'https://quanzhounode.bsngate.com:17602/api/node/reqChainCode'
...
可以看到这个函数向「泉州」节点发送了一个执行「链码」的请求。请记住链码这个名词,这是 BSN 中的关键概念。
我们再来看看请求的构成:
字段名 | 字段 | 内容 |
---|---|---|
用户唯一标识 | userCode | reddate |
应用唯一标识 | appCode | CL1851016378620191011150518 |
链码 | 链码标识 | chainCode | cc_base |
链码 | 函数名称 | funcName | et |
链码 | 函数参数 | args | ['{"baseKey": "89c21501-046a-4b3f", "baseValue": "Hello,World!"}'] |
至此,我们可以梳理出通过应用和 BSN 网络交互的过程:
应用开发者可以使用通用链码 / 自己定制开发链码 / 使用服务商提供的链码
链码服务提供方:
服务会提供调用链码的接口:
接口参数:
示例 DEMO 仅是基本操作的演示。要真正在项目中使用,我们还需要在示例代码的基础上,进行 SDK 的开发。
接下来的内容里,将会演示如何一步步开发 SDK。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!