星火链网、蚂蚁联盟链等区块链业务系统开发指南
一、区块链
1、简介
区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网络,区块链具有两大核心特点:数据难以篡改和去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
2、分类
公链:比特币(POW)、以太坊(POW)、tron(波场POS)、polkadot(波卡)、币安智能链等
私链:自己搭建的链条
联盟链:超级账本(Hyperledger)、蚂蚁开放联盟链、百度Xuperchain、BSN、星火链(许可链)
3、星火链是什么
星火·链网-底层区块链平台(BIF-Core),简称星火链,是中国信息通信研究院基于区块链技术打造的一条许可链,是实现“星火·链网”这一国家级区块链与工业互联网协同创新新型基础设施的关键技术。
4、共识
5、挖矿
6、记账
7、区块链的作用
身份管理(信息透明、不可篡改)、资产追踪(交易有明细、数据不可篡改,例如数字人民币防洗钱)、交易去中心化(交易无中心点、不必基于支付宝、微信或中心机构)
8、怎么使用区块链?
二、项目开发
- 开发内容及职责
- 后端业务逻辑——负责基础常规业务逻辑开发
- 后端链上交互——负责链上合约交互逻辑代码开发,涉及合约部署、调用、解析合约返回结果
- 智能合约——负责核心业务数据上链及数据读取类接口开发,主要涉及Solidity合约的编写,业务数据的存证
- 前端——负责业务视图展现层开发
- 节点运维——负责节点搭建、节点维护等
三、智能合约
1、概述
2015年以太坊开发出虚拟机,用户(开发者)可使用虚拟机运行应用,从而实现快速上链这一需求。这里的应用即智能合约,它是一种用solidity、C++、JavaScript开发的应用程序,极大提高用户的上链效率!
星火链实现了一种支持多种智能合约的执行引擎SparkVM,支持多种高级智能合约语言,同时兼容多种虚拟机架构。目前已集成完成V8虚拟机、EVM虚拟机,很快将支持WASM虚拟机。可通过使用JavaScript、Solidity、C++(wasm)进行智能合约开发。
2、开发
3、编译
4、发布
四、链上交互
- 合约部署
- 合约读数据
- 合约写数据
- 交易查询
- 交易创建
- 账户创建
- 账户查询(余额、交易等)
五、链下业务
六、业务示例
需求:使用区块链智能合约实现一个基于区块链的类似Redis的key-value数据结构的数据可信存证应用。
需求分析:智能合约、key-value、区块链
智能合约:
区块链交互后端服务:与智能合约交互,链上操作
业务后端服务:业务操作及与区块链后端交互
前端业务:用于调用后端服务