Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
f6310ad3
提交
f6310ad3
authored
11月 05, 2020
作者:
LJJ
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
根据区块链2.0接口文档进行接口开发
上级
c7bde80a
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
170 行增加
和
8 行删除
+170
-8
BcUrl.java
...ckcha/src/main/java/com/tykj/dev/blockcha/conf/BcUrl.java
+16
-0
BcVerify.java
...n/java/com/tykj/dev/blockcha/subject/entity/BcVerify.java
+29
-0
BcVerifyData.java
...va/com/tykj/dev/blockcha/subject/entity/BcVerifyData.java
+19
-0
BlockChainUtil.java
...com/tykj/dev/blockcha/subject/service/BlockChainUtil.java
+40
-1
BlockChainUtilImpl.java
...dev/blockcha/subject/service/impl/BlockChainUtilImpl.java
+60
-6
HexUtil.java
...a/com/tykj/dev/blockcha/subject/service/impl/HexUtil.java
+6
-1
没有找到文件。
dev-blockcha/src/main/java/com/tykj/dev/blockcha/conf/BcUrl.java
浏览文件 @
f6310ad3
...
@@ -33,5 +33,21 @@ public interface BcUrl {
...
@@ -33,5 +33,21 @@ public interface BcUrl {
* 记录批量查询
* 记录批量查询
*/
*/
String
FETCH_HISTORY
=
"/blockchain/fetch/history"
;
String
FETCH_HISTORY
=
"/blockchain/fetch/history"
;
/**
* 文本追加更新
*/
String
APPEND_TEXT
=
"/blockchain/append/text"
;
/**
* 哈希追加更新
*/
String
APPEND_HASH
=
"/blockchain/append/hash"
;
/**
* 文本防篡改校验
*/
String
VERIFY_TEXT
=
"/blockchain/verify/text"
;
/**
* 哈希防篡改校验
*/
String
VERIFY_HASH
=
"/blockchain/verify/text"
;
}
}
dev-blockcha/src/main/java/com/tykj/dev/blockcha/subject/entity/BcVerify.java
0 → 100644
浏览文件 @
f6310ad3
package
com
.
tykj
.
dev
.
blockcha
.
subject
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-11-05
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BcVerify
{
/**
* 结果状态码,成功为0
*/
private
Integer
code
;
/**
* 结果状态文字描述
*/
private
String
info
;
/**
* 接口返回结果
*/
private
BcVerifyData
data
;
}
dev-blockcha/src/main/java/com/tykj/dev/blockcha/subject/entity/BcVerifyData.java
0 → 100644
浏览文件 @
f6310ad3
package
com
.
tykj
.
dev
.
blockcha
.
subject
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-11-05
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
BcVerifyData
{
/**
* 状态: ok: 正常; expired:已更新; tampered: 已篡改
*/
private
String
status
;
}
dev-blockcha/src/main/java/com/tykj/dev/blockcha/subject/service/BlockChainUtil.java
浏览文件 @
f6310ad3
...
@@ -15,6 +15,7 @@ public interface BlockChainUtil {
...
@@ -15,6 +15,7 @@ public interface BlockChainUtil {
/**
/**
* 获取区块链状态
* 获取区块链状态
* ps:白鸟区块链1,0时可用,2.0经测试仍然可用,但不在接口文档中
*
*
* @return BS
* @return BS
*/
*/
...
@@ -22,6 +23,7 @@ public interface BlockChainUtil {
...
@@ -22,6 +23,7 @@ public interface BlockChainUtil {
/**
/**
* 业务类型码注册
* 业务类型码注册
* ps:白鸟区块链1.0时使用。2.0版本已弃用
*
*
* @param subName 业务名称,可以是中英文
* @param subName 业务名称,可以是中英文
* @return br
* @return br
...
@@ -41,7 +43,7 @@ public interface BlockChainUtil {
...
@@ -41,7 +43,7 @@ public interface BlockChainUtil {
* hash 上链
* hash 上链
*
*
* @param subCode 业务代码编号
* @param subCode 业务代码编号
* @param content 内容哈希,256bits hex编码。 方法可参考本模块HexUtil
* @param content 内容哈希,256bits hex编码。 方法可参考本模块HexUtil
,方法内已转换,直接传入内容即可
* @return bh
* @return bh
*/
*/
BcHash
sendHash
(
Integer
subCode
,
String
content
);
BcHash
sendHash
(
Integer
subCode
,
String
content
);
...
@@ -75,4 +77,41 @@ public interface BlockChainUtil {
...
@@ -75,4 +77,41 @@ public interface BlockChainUtil {
*/
*/
BcHistory
fetchHistory
(
Map
<
String
,
Object
>
map
);
BcHistory
fetchHistory
(
Map
<
String
,
Object
>
map
);
/**
* 文本追加更新
*
* @param content 内容文本,上限为200KB
* @param recordId 本条记录上次上链或追加返回的记录id, 确保顺序追加
* @return bc
*/
BcText
appendText
(
String
content
,
String
recordId
);
/**
* 哈希追加更新
*
* @param content 内容哈希,256bits hex编码,方法内已转换,直接传入内容即可
* @param recordId 本条记录上次上链或追加返回的记录id, 确保顺序追加
* @return bc
*/
BcHash
appendHash
(
String
content
,
String
recordId
);
/**
* 哈希防篡改校验
*
* @param content 内容哈希,256bits hex编码,直接传内容即可
* @param recordId 记录id
* @return bc
*/
BcVerify
verifyHash
(
String
content
,
String
recordId
);
/**
* 文本防篡改校验
*
* @param content 内容文本,上限为200KB
* @param recordId 记录id
* @return bc
*/
BcVerify
verifyText
(
String
content
,
String
recordId
);
}
}
dev-blockcha/src/main/java/com/tykj/dev/blockcha/subject/service/impl/BlockChainUtilImpl.java
浏览文件 @
f6310ad3
...
@@ -81,14 +81,10 @@ public class BlockChainUtilImpl implements BlockChainUtil {
...
@@ -81,14 +81,10 @@ public class BlockChainUtilImpl implements BlockChainUtil {
@Override
@Override
public
BcHash
sendHash
(
Integer
subCode
,
String
content
)
{
public
BcHash
sendHash
(
Integer
subCode
,
String
content
)
{
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
// content=str2HexStr(content);
request
.
put
(
"content"
,
HexUtil
.
hex64
(
content
));
request
.
put
(
"content"
,
HexUtil
.
hex64
(
content
));
request
.
put
(
"subCode"
,
subCode
);
request
.
put
(
"subCode"
,
subCode
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
request
.
put
(
"apiSignature"
,
s
);
request
.
put
(
"apiSignature"
,
s
);
log
.
info
(
"[block] 生成的Signature是:{}"
,
s
);
return
new
RestTemplate
().
postForObject
(
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
SEND_HASH
,
BLOCK_CHAIN_URL
+
BcUrl
.
SEND_HASH
,
request
,
request
,
...
@@ -101,7 +97,6 @@ public class BlockChainUtilImpl implements BlockChainUtil {
...
@@ -101,7 +97,6 @@ public class BlockChainUtilImpl implements BlockChainUtil {
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
request
.
put
(
"recordID"
,
recordId
);
request
.
put
(
"recordID"
,
recordId
);
request
.
put
(
"apiSignature"
,
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
));
request
.
put
(
"apiSignature"
,
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
));
return
new
RestTemplate
().
postForObject
(
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
FETCH_RECORD
,
BLOCK_CHAIN_URL
+
BcUrl
.
FETCH_RECORD
,
request
,
request
,
...
@@ -115,7 +110,6 @@ public class BlockChainUtilImpl implements BlockChainUtil {
...
@@ -115,7 +110,6 @@ public class BlockChainUtilImpl implements BlockChainUtil {
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
map
.
forEach
(
request:
:
put
);
map
.
forEach
(
request:
:
put
);
request
.
put
(
"apiSignature"
,
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
));
request
.
put
(
"apiSignature"
,
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
));
log
.
info
(
"{}"
,
request
);
return
new
RestTemplate
().
postForObject
(
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
FETCH_HISTORY
,
BLOCK_CHAIN_URL
+
BcUrl
.
FETCH_HISTORY
,
request
,
request
,
...
@@ -123,6 +117,66 @@ public class BlockChainUtilImpl implements BlockChainUtil {
...
@@ -123,6 +117,66 @@ public class BlockChainUtilImpl implements BlockChainUtil {
);
);
}
}
@Override
public
BcText
appendText
(
String
content
,
String
recordId
)
{
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
request
.
put
(
"content"
,
content
);
request
.
put
(
"recordID"
,
recordId
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
request
.
put
(
"apiSignature"
,
s
);
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
APPEND_TEXT
,
request
,
BcText
.
class
);
}
@Override
public
BcHash
appendHash
(
String
content
,
String
recordId
)
{
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
request
.
put
(
"content"
,
HexUtil
.
hex64
(
content
));
request
.
put
(
"recordID"
,
recordId
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
request
.
put
(
"apiSignature"
,
s
);
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
APPEND_HASH
,
request
,
BcHash
.
class
);
}
@Override
public
BcVerify
verifyHash
(
String
content
,
String
recordId
)
{
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
request
.
put
(
"content"
,
HexUtil
.
hex64
(
content
));
request
.
put
(
"recordID"
,
recordId
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
request
.
put
(
"apiSignature"
,
s
);
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
VERIFY_HASH
,
request
,
BcVerify
.
class
);
}
@Override
public
BcVerify
verifyText
(
String
content
,
String
recordId
)
{
SortedMap
<
Object
,
Object
>
request
=
getRequest
();
request
.
put
(
"content"
,
content
);
request
.
put
(
"recordID"
,
recordId
);
String
s
=
ApiSignatureUtil
.
getApiSignature
(
request
,
SECRET_KEY
);
request
.
put
(
"apiSignature"
,
s
);
return
new
RestTemplate
().
postForObject
(
BLOCK_CHAIN_URL
+
BcUrl
.
VERIFY_TEXT
,
request
,
BcVerify
.
class
);
}
/**
/**
* 存储通用参数
* 存储通用参数
*
*
...
...
dev-blockcha/src/main/java/com/tykj/dev/blockcha/subject/service/impl/HexUtil.java
浏览文件 @
f6310ad3
package
com
.
tykj
.
dev
.
blockcha
.
subject
.
service
.
impl
;
package
com
.
tykj
.
dev
.
blockcha
.
subject
.
service
.
impl
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* @author LJJ cnljj1995@gmail.com
* @author LJJ cnljj1995@gmail.com
* on 2020-08-19
* on 2020-08-19
*/
*/
@Slf4j
public
class
HexUtil
{
public
class
HexUtil
{
/**
/**
* @param b 字节数组
* @param b 字节数组
* @return 16进制字符串
* @return 16进制字符串
...
@@ -97,6 +101,7 @@ public class HexUtil {
...
@@ -97,6 +101,7 @@ public class HexUtil {
try
{
try
{
return
bytes2HexString
(
strPart
.
getBytes
(
tochartype
));
return
bytes2HexString
(
strPart
.
getBytes
(
tochartype
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
"[HexUtil] string2HexString方法出错:{}"
,
e
.
toString
());
return
""
;
return
""
;
}
}
}
}
...
@@ -164,7 +169,7 @@ public class HexUtil {
...
@@ -164,7 +169,7 @@ public class HexUtil {
return
new
String
(
new
String
(
bts
,
oldchartype
).
getBytes
(),
chartype
);
return
new
String
(
new
String
(
bts
,
oldchartype
).
getBytes
(),
chartype
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
"[HexUtil] hexString2String:{}"
,
e
.
toString
());
return
""
;
return
""
;
}
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论