自定义博客皮肤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 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关注的人

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