自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

目前专注区块链相关技术的学习与分享

区块链方向计算机研究生

  • 博客(147)
  • 资源 (4)
  • 收藏
  • 关注

原创 多角色用户认证与权限机制详解

本文深入解析了Admin用户认证与权限机制的设计与实现: 系统架构:采用5层拦截器链设计,支持不同角色的权限验证,其中Admin认证是核心环节之一。 认证模式:系统支持3种Admin Token类型(Dashboard、Issuer和Verifier),分别通过不同HTTP Header传递,采用不同的验证机制。 技术原理: 基于Spring MVC拦截器实现请求拦截 使用自定义注解@AdminAuthorization标记需要权限控制的方法 采用Sqids编码技术生成可逆的短Token 利用Redis缓存

2025-11-05 18:50:16 786

原创 Iden3 协议规范(Version 0)详细总结

Iden3 协议摘要 Iden3是一个分布式数字身份协议,基于零知识证明和默克尔树技术实现隐私保护和高效交互。协议定义三类核心角色:签发者(Issuer)负责创建声明,持有者(Holder)存储声明并生成证明,验证者(Verifier)验证声明有效性。 协议采用三种默克尔树结构:声明树(ClT)存储身份声明,撤销树(ReT)记录撤销信息,根树(RoT)保存历史状态。声明由索引和值部分组成,支持版本控制、过期和撤销机制。身份状态通过树根哈希计算并锚定在区块链上。 协议使用zkSNARKs Groth16方案实

2025-11-04 14:29:20 421

原创 Spring Security权限认证机制详解 实战

本文详细介绍了基于Spring Security和JWT的双重认证机制,适用于Java后端开发。主要内容包括: 核心概念:区分认证与授权,解释JWT结构及其优劣势 系统架构:采用JWT+Redis混合方案,实现无状态传输与可撤销会话 安全机制:通过Redis缓存校验增强JWT安全性,解决传统JWT无法撤销的问题 实现细节:包含Spring Security过滤器链、认证流程和Token验证机制 最佳实践:提供分布式系统中的安全认证方案,支持会话管理和并发控制 该方案既保留了JWT轻量级特性,又通过Redis

2025-11-03 14:23:20 721

原创 Spring Boot 邮件发送系统 - 从零到精通教程

本文介绍如何在Spring Boot中构建邮件发送系统,主要包括: 邮件基础知识:讲解SMTP协议原理、常用邮箱配置和授权密码获取方法 系统架构设计: 采用分层架构(应用层、服务层、实现层、底层) 遵循模块化、模板化、异步化原则 详细目录结构说明 核心组件: 配置文件(application-email.yml)管理SMTP参数 配置类(EmailConfig)映射配置 邮件服务接口及实现类 邮件模板系统设计 主要功能: 支持多种邮件类型 异步发送机制 模板变量替换 灵活的配置方式 该系统设计强调易用性和可

2025-11-01 15:11:39 780

原创 WebMvcConfig 和 WebSecurityConfig 详解

Spring Boot项目中的两个核心配置类WebMvcConfig和WebSecurityConfig分别负责不同功能。WebMvcConfig通过实现WebMvcConfigurer接口配置MVC行为,包括拦截器注册、静态资源映射、跨域设置等。WebSecurityConfig继承WebSecurityConfigurerAdapter,负责安全配置,包含认证授权管理、密码加密、会话策略等。实际项目中,WebMvcConfig常用于API拦截处理,而WebSecurityConfig则配置JWT认证、权

2025-11-01 14:13:54 972

原创 centos安装golang

golang所有版本网址//下载并解压到/usr/local文件下//解压并复制到/user/local文件夹下。

2025-01-15 17:42:45 517

转载 Docker安装MySQL

【如果没有安装docker,使用如下命令安装docker】【启动docker容器】【搜索mysql】[ok]表示官方提供。

2025-01-15 17:40:00 330

原创 docker 安装mongodb

加27017测试是否能访问(服务器要开放27017端口),当然如果是本地虚拟机搭建用虚拟机的IP+27017端口测试就行。首先要保证服务器开启27017端口,然后用。

2025-01-15 17:29:33 590

原创 Centos7安装docker和docker-compose

1. 创建install_docker.sh脚本文件。4.运行脚本即可一键安装。2.将以下脚本复制进去。

2025-01-15 17:27:25 439

原创 如何编写智能合约——基于长安链的Go语言的合约开发

定义 FactContract 作为合约的核心结构体。我们还定义了 Fact 结构体来存储文件的存证信息,包括证据类型、版本、文件哈希、文件名和时间。

2024-09-13 12:57:01 1888 6

原创 计算机网络知识复盘

第四次挥手时,客户端发送给服务端的 ACK 有可能丢失,如果服务端因为某些原因而没有收到 ACK 的话,服务端就会重发 FIN,如果客户端在 2*MSL 的时间内收到了 FIN,就会重新发送 ACK 并再次等待 2MSL,防止 Server 没有收到 ACK 而不断重发 FIN。这样,连接就被认为是建立的,服务端会处理该数据包,并继续正常的数据传输流程。三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。

2024-09-09 15:44:52 1118

原创 长安链java-sdk打成jar包部署找不到配置文件,springBoot项目制作Docker镜像

长安链使用sdk_config.yml的形式来引入用户的各种证书文件,

2024-08-06 13:41:05 649 1

原创 代币奖励分配

通过上述机制,代币奖励分配能够公平且有效地激励训练节点和验证节点的积极参与,提高联邦学习系统的整体性能和安全性。训练节点通过提供高质量的训练结果获得奖励,验证节点通过公正准确的验证过程获得奖励,二者共同保障了联邦学习任务的顺利完成和系统的可靠运行。通过上述机制,代币奖励分配能够公平且有效地激励训练节点和验证节点的积极参与,提高联邦学习系统的整体性能和安全性。训练节点通过提供高质量的训练结果获得奖励,验证节点通过公正准确的验证过程获得奖励,二者共同保障了联邦学习任务的顺利完成和系统的可靠运行。

2024-07-26 17:45:03 470

原创 solidity : Hash

solidity : Hash函数详解

2024-07-19 10:38:44 1016

原创 Solidity:abi编码与解码

Solidity:abi编码与解码

2024-07-19 10:14:11 1951

原创 Solidity: Delegatecall

​这一讲我们介绍了Solidity中的另一个低级函数。与call类似,它可以用来调用其他合约;不同点在于运行的上下文,B call C,上下文为C;而,上下文为B。目前最大的应用是代理合约和(钻石)。

2024-07-18 14:49:45 1283

原创 Solidity: Call

​这一讲,我们介绍了如何用call这一低级函数来调用其他合约。call不是调用合约的推荐方法,因为不安全。但他能让我们在不知道源代码和ABI的情况下调用目标合约,很有用。

2024-07-18 14:32:43 1011

原创 Solidity: 异常、函数的重载

Solidity: 异常、重载

2024-07-17 10:48:25 528

原创 Solidity: 抽象合约和接口

Solidity: 抽象合约和接口

2024-07-12 16:26:27 937

原创 Solidity: 继承

Solidity: 继承

2024-07-12 16:24:50 945

原创 solidity:构造函数和修饰器、事件

solidity:构造函数和修饰器、事件

2024-07-08 14:52:01 2003

原创 Solidity :变量初始值、常数

Solidity 语法:变量初始值、常数

2024-07-08 14:17:14 529

原创 Solidity:映射类型 mapping

Solidity:映射类型 mapping

2024-07-08 13:59:12 758

原创 Solidity: 引用类型, array, struct

支持通过构造结构体的形式定义新的类型。结构体中的元素可以是原始类型,也可以是引用类型;结构体可以作为数组或映射的元素。数组字面常数(Array Literals)是写作表达式形式的数组,用方括号包着来初始化array的一种方式,常用的一种变量类型,用来存储一组数据(整数,字节,地址等等)。操作符来创建,但是必须声明长度,并且声明后长度不能改变。可变长度数组(动态数组):在声明时不指定数组的长度。类型了,里面每一个元素的type都以第一个元素为准。固定长度数组:在声明时指定数组的长度。

2024-07-08 11:30:48 1152

原创 Solidity:变量数据存储和作用域 storage/memory/calldata

这样就能让合约的执行可以更加精确,不会因为技术上的误差而影响合约的结果。在不同存储类型相互赋值时候,有时会产生独立的副本(修改新变量不会影响原变量),有时会产生引用(修改新变量会影响原变量)。代替为小数点,来确保交易的精确度,并且防止精度的损失,利用以太单位可以避免误算的问题,方便程序员在合约中处理货币交易。局部变量是仅在函数执行过程中有效的变量,函数退出后,变量无效。),由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。状态变量是数据存储在链上的变量,所有合约内函数都可以访问,

2024-07-08 11:07:49 2464 3

原创 SecretFlow环境安装配置:云服务器下安装anaconda3和jupyter notbook

SecretFlow环境安装配置:云服务器下安装anaconda3和jupyter notbook

2024-06-05 13:02:27 1099

原创 Jupyter Notebook 切换虚拟环境

Jupyter Notebook 切换虚拟环境

2024-06-05 12:59:05 1548 2

原创 第二讲笔记:隐私计算助力数据要素流通

内鬼门 : 2023 年 , 美国科技公司 Ubiquiti在2021年1月曝出数据泄露事 件, “攻击者”在随后的“谈判”中试 图向该企业勒索近200万美元(50比特 币)赎金以换回被盗数据。随着深入调 查发现,该公司员工Sharp才是事后背 后的始作俑者Facebook剑桥分析数据门:英国剑桥分析 公司获取海量Facebook用户数据,未经用户同 意的情况下将这些数据用于政治广告分析,以支 持2016年唐纳德·特朗普的总统竞选。

2024-06-03 21:41:23 715

原创 隐私计算实训营 第2期 -第一讲笔记(数据流通体系)

信任概念由于其抽象性和结构复杂性,在社会学、心理学、营销学、经济学、管理学等不同 的领域定义是不同的,但是达成共识的观点是:信任是涉及交易或交换关系的基础。

2024-06-03 21:27:07 466

原创 长安链使用Golang编写智能合约教程(三)

长安链使用Golang编写智能合约教程 SDK详细解析

2024-05-29 10:27:11 1444 1

原创 长安链使用Golang编写智能合约教程(二)

本篇说的是长安链2.3.+的版本的智能合约,虽然不知道两者有什么区别,但是编译器区分。

2024-05-28 11:08:15 2463 7

原创 长安链使用Golang编写智能合约教程(一)

长安链智能合约教程,使用Golang编写

2024-05-26 13:22:16 2212

原创 JAVA实现登录校验(JWT令牌实现)

等。例如:{"id":"1","username":"Tom"}第三部分:Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来。签名的目的就是为了防止jwt令牌被篡改,而正是因为jwt令牌最后一个部分数字签名的存在,所以整个jwt 令牌是非常安全可靠的。一旦jwt令牌当中任何一个部分、任何一个字符被篡改了,整个令牌在校验的时候都会失败,所以它是非常安全可靠的。

2024-05-06 17:43:05 1280

原创 Solidity基础面试题

为了克服这些挑战,通常需要使用各种密码学技术和算法来生成"足够随机"的数字,比如通过组合多个可能的熵源、使用延迟性随机函数、引入可信的外部预言机等。在区块链上生成真正的随机数存在一些固有的挑战,主要原因是区块链是一个确定性的系统,而真正的随机性需要引入不可预测的外部元素。由于地址是确定的,因此连续两次使用相同的4个参数部署同一个字节码,得到的合约地址将完全相同。则是对内部错误的最后保护。用于部署一个新合约,新合约的地址是由创建者的地址、创建者的nonce值以及部署合约的字节码通过一个确定性的计算得到的。

2024-04-17 15:22:51 2418 1

原创 可信通信(TLS/SSL协议)

比特币,以太坊,超级账本在建立网络连接保证节点间可靠通信的时,都直接采用了传输层安全性协议(Transport Layer Security),TLS协议自从1999年发布以来已经广泛的应用在浏览器,电子邮件等应用中了,经过了大规模的验证,已经成为了互联网上保密通信的工业标准,可以说是目前构建区块链网络间通信的最佳选择。

2024-04-17 10:27:41 747

原创 区块链基础概念

消息摘要就是采用单向哈希(Hash)函数将需要加密的明文“提取摘要”生成一串固定长度的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文提取摘要生成的密文其结果总是不同的,但是同样的明文产生的摘要是一致的。由于生成摘要的明文是没有任何限制的,但是得到的摘要却是定长的,必然就会导致有一些明文会产生相同的摘要,这种现象被称为”碰撞“。为了避免这种情况的产生哈希函数必须具备很好的抗碰撞性,意味着在现有的计算资源(包括时间、空间、资金等)下,找到一个碰撞是不可行的。消息摘要如下的四个特点;

2024-04-17 09:54:49 1584

原创 Solidity入门1: 3. 函数类型

solidity官方文档里把函数归到数值类型

2024-04-05 17:44:44 1583 1

原创 golang代理超时报错”https://proxy.golang.org/github.com/********** host has failed to respond

使用Golang出错时,

2024-04-05 15:28:47 2906

原创 关于golang编译出错: Get “https://proxy.golang.org/chainmaker.org/chainmaker/common/v2/@v/v2.2.0.mod“: dial

然而在1.3版本后,golang推出了go module 机制,同时发布了一个叫做 Module proxy protocol 的协议,通过这个机制,我们可以搭建go模块代理,最后通过GOPROXY变量以指引go命令在后续抓取模块的途径。部署长安链时,其中在编译证书生成工具时,发现老是出现i/o timeout,原因就是依赖拉取超时.在网上查阅资料后发现是自己的golang版本太低(1.3一下),因为goalng在最初开发时,

2024-04-05 15:21:10 615

原创 如何处理ubuntu22.04LTS安装过程中出现“Daemons using outdated libraries”提示

下表总结了上述使用的命令。命令描述在 ubuntu 中安装 needrestart 服务以机器可读格式显示需要重新启动的服务内容以人类可读格式显示需要重新启动的服务内容重启服务器reboot重启服务器。

2024-04-05 15:13:55 8918

JAVA实现登录校验(JWT令牌实现)

JWT令牌工具类

2024-05-06

北京大学肖臻老师《区块链技术与应用》-B分叉篇

北京大学肖臻老师《区块链技术与应用》公开课笔记

2022-11-27

Linux环境中的jdk11

安装JAVA11版本 这是jdk-11.0.20_linux-x64_bin.tar.gz

2023-11-19

《区块链技术与应用》课堂笔记(五):实现

《区块链技术与应用》课堂笔记(五):实现 源文件笔记和高清图片

2022-11-24

Xshell6相关软件及教程,主要是保存好软件

Xshell6相关软件及教程

2022-10-21

heyperledger fabric 入门教程(环境搭建,文件配置,详细教程)

heyperledger fabric 入门教程(环境搭建,文件配置,详细教程) 这个教程适合新手入门,教会了你如何搭建fabric 的环境,如何启动测试程序 如何手动搭建自己的第一个简单的fabric 网络, 如何设置配置文件等等

2022-07-03

dom4j-1.6.1 和 jaxen-1.1.6 两个jar 包

你学习XML解析时用得到,,, 不收积分,, dom4j-1.6.1 和 jaxen-1.1.6 两个jar 包

2020-03-21

VUE案例消扑克.zip

对应我的博客,VUE小案例。扑克消消乐。完整实现代码。 对应学习可以先下载我的上传的模板

2020-05-10

08-消扑克.zip

对应我的博客。VUE小案例:扑克消消乐。 这里发布的是没有实现的代码,就是页面模板,还没有实现。

2020-05-10

空空如也

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

TA关注的人

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