自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 634

原创 【软件工程应用与实践】(10)JDchain数据检索

2021SC@SDUSC 什么是穿透式检索 1.1. 当前的检索 传统的检索通过关键字搜索相关结果,并根据关联度进行排名,之后根据得到的结果中进行整理,获得最终结果,但最终结果并不能保证是需要的结果。 1.2. 穿透式检索 穿透式检索直接检索需要的数据,不需要人脑再次整理,可以参考Google OneBox的概念。穿透式检索因为其结果的精确,可以为大数据和人工智能提供准确的素材,进而帮助大数据和人工智能获得更加准确的结果。 1.3. 为什么区块链需要穿透式检索 区块链数据是严谨的业务数据,对业务数据的分

2021-12-28 21:51:37 278

原创 【软件工程应用与实践】(9)JDchain赋权的实现

2021SC@SDUSC 1 角色赋权 @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 159

原创 【软件工程应用与实践】(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 263

原创 【软件工程应用与实践】(7)JDchain对共识节点的更改操作

共识节点变更 借助BFT-SMaRT共识提供的Reconfig操作元语,JD Chain实现了在不停机的情况下快速更新共识网络拓扑,实现添加共识节点,移除共识节点,更新共识信息 等功能。 共识节点相关操作错误极容易导致整个网络不可用,甚至无法恢复,操作前请做好数据备份,务必谨慎操作,确保所有环境和指令正确 以下操作说明均以在部署好的如下单机四节点环境操作为例: ledger j5m4yF1uyxaMwwBWKaqJqyHkKViXs8LGe9ChWvPs1CqdjP peer0 启动端口 7080,共识端

2021-12-28 20:23:20 1126

原创 【软件工程应用与实践】(6)JDchain智能合约快速入门

智能合约 1. 简介 JD Chain 智能合约系统由5个部分组成:合约代码语言、合约引擎、合约账户、合约开发框架、合约开发插件。 合约代码语言是用来编写智能合约的编程语言,合约引擎是解释和执行合约代码的虚拟机。 JD Chain 账本中以合约账户的方式对合约代码进行管理。一份部署上链的合约代码需要关联到一个唯一的公钥上,并生成与公钥对应的区块链账户地址,在账本中注册为一个合约账户。在执行之前,系统从账本中读出合约代码并将其加载到合约引擎,由交易执行器调用合约引擎触发合约执行。 JD Chain 账本定义了

2021-12-28 19:51:22 13144

原创 【软件工程应用与实践】(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 221

原创 【软件工程应用与实践】(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 11813

原创 【软件工程应用与实际】(3)JDchain对事件查询及监听

@SDUSC 1 事件相关信息的获取 1.1 获取事件账户列表 GET /ledgers/{ledger}/events/user/accounts?fromIndex={fromIndex}&count={count} 参数 请求类型 名称 是否必需 说明 数据类型 path ledger 是 账本哈希 字符串 query fromIndex 否 查询的起始序号,默认为0 数字 query count 否 查询返回事件账户的数量,默认最大返回值为100,小于0或大于100

2021-12-28 19:25:11 393

原创 【软件工程应用与实践】(2)JDchain对于用户的权限及账号的管理

2021SC@SDUSC 1. 用户 可类比传统数据库的用户概念,JD Chain用户是接入JD Chain网络的必要身份,本质上由一对公私钥对标识,公钥和地址信息记录在账本用户数据集中。 2. 角色 角色名称不区分大小写,最长不超过20个字符,多个角色名称之间用半角的逗点,分隔 系统会预置一个默认角色DEFAULT,所有未指定角色的用户都以赋予该角色的权限,若初始化时未配置默认角色的权限,则为默认角色分配所有权限; 2.1 多角色策略 表示如何处理一个对象被赋予多个角色时的综合权限,在RolesPolic

2021-12-28 19:02:39 12410

原创 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 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除