KO
|
EN
gitlite — search
Search
#javascript
#swift
#react
#php
#windows
#python
#ios
#scala
#macos
#cpp
#nodejs
#application
blockchainj
★ 108
Open GitHub ↗
java区块链,实现联盟链溯源系统
Download README (.md)
Explore Similar Repositories
abacus-common
:
Release the power in Java programming
mat-progress-buttons
:
Very simple Angular6+ Material Design progress buttons
ppo
:
Proximal Policy Optimization implementation with TensorFlow
RxStoreKit
:
StoreKit library for RxSwift
multitenancy-dynamic-tenant
:
Spring Boot 2 JPA Hibernate with database per tenant with dynamic configuration of tenants, secured by Spring Security
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
blockchainj
?
Download (.md)
# java实现区块链溯源系统 > 关系型数据库操作太过复杂,希望可以模仿Hyledger Fabric使用非关系新数据库作为状态数据库 > > 使用技术:spring,springboot,websocket,springmvc,mybatis,sqlite,levelDB, ## 开发目的 > 实现分布式存诸,联盟角色共同维护一个数据库 ## 区块链 > 区块中包含指令,指令是对数据库操作称为HXSQL(对sql语句的封装) ## 智能合约 > 解析并执行HXQL > > HXQL对象(执行操作,操作对象,操作类容) > > 存在问题:HXQL并不能完全解析成sql,只能转化成对应的ORM操作 ## 共识机制 >pbft 算法 > >所有角色=3f+1(f为最大容错率) ## 存诸层 > 采用两个本地轻量级数据库分别存储,区块链和共同维护的数据库 1. levelDB(键值对存储) > 存储区块信息,以及最后一个区块的hash 2. sqlite(关系型数据库)//应用层数据区 1. 角色 (公钥(id),权限列表,状态,内容) 权限 商品(hash,描述(content),) 交易 ## 网络传输 > 创建NodeSeedServer(节点种子服务器) 节点注册,监听节点变化,通知各节点,实现P2P(端对端,节点与每个节点建立websocket长连接实现网状模型)网络 > > 执行流程: > > 1. 节点携带局域网IP 连接种子服务器(websocket长连接),服务器记录IP > > 2. 种子服务器响应当前所有几点给连接节点 > > 3. 连接节点与服务器返回的所有节点相连(与自身也相连) > > 4. 监听服务器几点变化 > > TODO(未做): > > 客户端下线重连 ## 商品流程(交易) 1. 生产 2. 检验 3. 出厂 --> 出现分支(商品与批次分离) 4. 销售 5. 运输 6. 使用 ##用户查询商品交易信息(流程) ## 开发记录 > 区块链就是将区块链起来保存在sqlite数据库中 通过公钥(数字身份证书)连接服务器获取权限信息 1.注册当前节点ip(方便广播) 广播有新节点加入 各节点运行 -- 创世块内容绝对可信 有以下几个角色 ## 联盟角色 1. CA(颁发证书) > 在创世块中注册ca,建初始化表 > > CA权限,对 role 新增 (颁发数字身份证书),修改 > > 角色注册,填写信息(申请证书->与ca产生交易记录区块指令中) 2. 厂家 发布产品(新增数据)-> output 商品ID 厂家送检测 -> 与检查机构产生一次交易 3. 检测机构 (产生检测信息) 4. 商家 以上是节点 5. 用户