- 博客(11)
- 收藏
- 关注
原创 【软件工程应用与实践】(11)JDchain RocksDB
1.简介KVDB是一个简单的NoSQL数据库,支持简单的“键值”读写操作。KVDB包装了RocksDB作为数据库引擎,实现了单机部署和集群部署。KVDB的集群是一个分布式的分片服务集群,每个分片节点是一个KVDB的数据库服务实例,采用对等模式部署,没有主节点。2.分析2.1 创建客户端连接// `host`、`port`为服务器地址和端口,`database`为数据库名称KVDBClient client = new KVDBClient("kvdb://<host>:<po
2021-12-28 22:10:12 628
原创 【软件工程应用与实践】(10)JDchain数据检索
2021SC@SDUSC什么是穿透式检索1.1. 当前的检索传统的检索通过关键字搜索相关结果,并根据关联度进行排名,之后根据得到的结果中进行整理,获得最终结果,但最终结果并不能保证是需要的结果。1.2. 穿透式检索穿透式检索直接检索需要的数据,不需要人脑再次整理,可以参考Google OneBox的概念。穿透式检索因为其结果的精确,可以为大数据和人工智能提供准确的素材,进而帮助大数据和人工智能获得更加准确的结果。1.3. 为什么区块链需要穿透式检索区块链数据是严谨的业务数据,对业务数据的分
2021-12-28 21:51:37 253
原创 【软件工程应用与实践】(9)JDchain赋权的实现
2021SC@SDUSC1 角色赋权@DataContract(code = DataCodes.TX_OP_ROLE_CONFIGURE)public interface RolesConfigureOperation extends Operation {} /** * 角色权限列表 */ @DataField(order = 2, refContract = true, list = true) RolePrivilegeEntry[] getRoles(); @DataC
2021-12-28 20:56:56 155
原创 【软件工程应用与实践】(8)JDchain对交易的处理
2021SC@SDUSC交易1. 请求JD Chain限制单笔交易数据大小不得超过 4M代码的分析写在了注释 中/** * 交易请求; */@DataContract(code= DataCodes.TX_REQUEST)public interface TransactionRequest {} /** * 交易哈希; */ @DataField(order = 1, primitiveType = PrimitiveType.BYTES) HashDigest get
2021-12-28 20:46:56 226
原创 【软件工程应用与实践】(7)JDchain对共识节点的更改操作
共识节点变更借助BFT-SMaRT共识提供的Reconfig操作元语,JD Chain实现了在不停机的情况下快速更新共识网络拓扑,实现添加共识节点,移除共识节点,更新共识信息 等功能。共识节点相关操作错误极容易导致整个网络不可用,甚至无法恢复,操作前请做好数据备份,务必谨慎操作,确保所有环境和指令正确以下操作说明均以在部署好的如下单机四节点环境操作为例:ledger j5m4yF1uyxaMwwBWKaqJqyHkKViXs8LGe9ChWvPs1CqdjPpeer0 启动端口 7080,共识端
2021-12-28 20:23:20 1115
原创 【软件工程应用与实践】(6)JDchain智能合约快速入门
智能合约1. 简介JD Chain 智能合约系统由5个部分组成:合约代码语言、合约引擎、合约账户、合约开发框架、合约开发插件。合约代码语言是用来编写智能合约的编程语言,合约引擎是解释和执行合约代码的虚拟机。JD Chain 账本中以合约账户的方式对合约代码进行管理。一份部署上链的合约代码需要关联到一个唯一的公钥上,并生成与公钥对应的区块链账户地址,在账本中注册为一个合约账户。在执行之前,系统从账本中读出合约代码并将其加载到合约引擎,由交易执行器调用合约引擎触发合约执行。JD Chain 账本定义了
2021-12-28 19:51:22 13110
原创 【软件工程应用与实践】(5)JDchain区块结构
区块jdchain对于区块采用BFT-SMaRt共识协议,即时出块,单个区块交易数限制默认为2000(bftsmart.config中参数system.totalordermulticast.maxbatchsize)下面是区块的结构:注释都写在代码中LedgerBlock:@DataContract(code = DataCodes.BLOCK)public interface LedgerBlock extends BlockBody { /** * 区块哈希; */ @Data
2021-12-28 19:42:44 208
原创 【软件工程应用与实践】(4)JDchain对于合约的相关操作
部署合约TransactionTemplate txTemp = blockchainService.newTransaction(ledger);// 生成合约账户BlockchainKeypair contractAccount = BlockchainKeyGenerator.getInstance().generate();System.out.println("合约地址:" + contractAccount.getAddress());// 部署合约txTemp.contrac.
2021-12-28 19:31:49 11805
原创 【软件工程应用与实际】(3)JDchain对事件查询及监听
@SDUSC1 事件相关信息的获取1.1 获取事件账户列表GET /ledgers/{ledger}/events/user/accounts?fromIndex={fromIndex}&count={count}参数请求类型名称是否必需说明数据类型pathledger是账本哈希字符串queryfromIndex否查询的起始序号,默认为0数字querycount否查询返回事件账户的数量,默认最大返回值为100,小于0或大于100
2021-12-28 19:25:11 381
原创 【软件工程应用与实践】(2)JDchain对于用户的权限及账号的管理
2021SC@SDUSC1. 用户可类比传统数据库的用户概念,JD Chain用户是接入JD Chain网络的必要身份,本质上由一对公私钥对标识,公钥和地址信息记录在账本用户数据集中。2. 角色角色名称不区分大小写,最长不超过20个字符,多个角色名称之间用半角的逗点,分隔系统会预置一个默认角色DEFAULT,所有未指定角色的用户都以赋予该角色的权限,若初始化时未配置默认角色的权限,则为默认角色分配所有权限;2.1 多角色策略表示如何处理一个对象被赋予多个角色时的综合权限,在RolesPolic
2021-12-28 19:02:39 12389
原创 2021-09-30
软件工程与实践(1):jdchain的安装与部署,组内分工目录软件工程与实践(1):jdchain的安装与部署,组内分工1:下载jdchain源码Github链接:https://gitee.com/jdchain/jdchain.官网链接:https://ledger.jd.com.2:快速部署大致步骤可分为以下几个步骤1:安装修改配置,2:启动管理工具,3:创建公私钥,4:创建数据账本,5:安装、启动Gateway节点详细步骤可在jdchain官网查看3:组内分工..
2021-09-30 18:30:32 129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人