大规模高性能区块链架构设计模式与测试框架-李世敬趣链科技 版权所有 ©2016-2021 6 趣链科技 版权所有 ©2016-2021 6 趣链科技 版权所有 ©2016-2021 6 区块链技术定义 区块链是由分布式数据存储、点对点传输、共识机制、加密算法等计算机技术构成的多中心 化系统 不可篡改(可信存证) ü 可对存储的文件、数据进行真实性校验 ü 可信追溯历史数据 去中心化共识(协作共享) ü 多方业务系统数据共享 ü 跨机构业务协作 ©2016-2021 23 趣链科技 版权所有 ©2016-2021 23 区块链平台关键技术-联盟治理 多机构协同治理 ⽀持多家机构分别设置系统管理员,决策阈值可根据具 体业务场景动态调整,决策公开透明灵活 联盟治理决策流程 单⼀机构治理 在单机构总部-分部的场景中,可将投票阈值设为1,仍 可⽀持设置多个管理员进⾏分级管理 1.发起提案 (如新增节点) 管理员1 管理员3 普通⽤户1 版权所有 ©2016-2021 ⾼安全 易⽤性 • ⽀持1000+共识节点组⽹ • ⽇均存储量可达TB级 • 全国密⽀持 • 链内原⽣权限控制体系 强隐私 • TEE账本加密、隐私交易 • 零知识证明、同态加密 • 安全完备证书准⼊机制 • 分区共识 • ⽀持GB级图⽚、⾳视频⼤⽂件存储 连续荣获第⼀ 2017-2020年 中国信通院 可信区块链测评 海量存储 • ⾼效数据索引0 码力 | 39 页 | 56.58 MB | 1 年前3
Go Web编程8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 确保输入过滤 9.3 避免XSS攻击 9.4 避免SQL注入 9.5 存储密码 9.6 加密和解密数据 9.7 小结 10.国际化和本地化 10.1 设置默认地区 10.2 本地化资源 10.3 国际化站点 4 10 WebSocket原理 WebSocket原理 WebSocket的协议颇为简单,在第一次handshake通过以后,连接便建立成功,其后的通讯数据都是以”\x00″开头, 以”\xFF”结尾。在客户端,这个是透明的,WebSocket组件会自动将原始数据“掐头去尾”。 浏览器发出WebSocket连接请求,然后服务器发出回应,然后连接建立成功,这个过程通常称为“握手” (handshaking)。请看下面的请求和反馈信息: 是所有涉及到网络编程的工具的所在地。如果你想更加深入的了解相关实现细节,可以 尝试阅读这个包下面的源码。 links links 目录 上一节: RPC 下一章: 安全与加密 200 9 安全与加密 9 安全与加密 无论是开发Web应用的开发者还是企图利用Web应用漏洞的攻击者,对于Web程序安全这个话题都给予了越来越多的关 注。特别是最近CSDN密码泄露事件,更是让我们对Web安全0 码力 | 295 页 | 5.91 MB | 1 年前3
Go持续集成4. 开发过程透明度差 简单 激情 速度快 聚焦 极致 可信赖 青铜时代 简单 激情 速度快 聚焦 极致 可信赖 迈出第一步 1. 重构 2. 添加单元测试 3. 自动化测试系统 简单 激情 速度快 聚焦 极致 可信赖 青铜时代 通知测试 Email测试报告 简单 激情 速度快 聚焦 极致 可信赖 还有问题 1. 自动化测试不能并行 2. 开发过程透明度无改善 3. Github国内连接 4. 回滚 5. 多国机房的问题 简单 激情 速度快 聚焦 极致 可信赖 原有问题是如何被解决的 1. 迭代周期漫长 2. 质量缺乏保障 3. 系统可维护性差 4. 开发过程透明度差 简单 激情 速度快 聚焦 极致 可信赖 要想富先修路 简单 激情 速度快 聚焦 极致 可信赖 推行持续集成中遇到的问题 简单 激情 速度快 聚焦 极致 可信赖 白银时代 简单 激情0 码力 | 39 页 | 10.74 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬OPRF协议 ⿊黑名单匹配 ⾦金金融反欺诈 联合征信 应 ⽤用 同态加密 算法体系 隐私计算算法体系 03 构建隐私计算算 法框架的实践 趣链科技版权所有©2016 – 2021 13 隐私集合求交算法示例例 2.发送 和 N fp(A) 3.1随机⽣生成秘钥q 3.2加密数据集B的每个元素 3.2再次加密 的每个元素 fq(B) = {fq(b1), fq(b2), …, fP(A) fq(fp(A)) = {fq(fp(a1)), fp(fp(a2)), …, fp(fp(an))} 4. 发送fq(B)和fq(fp(A)) 5.1再次加密 的每个元素 5.2计算 和 两个集 合的交集,加密集合交集index对应的 原集合数据就是交集 fq(B) fp(fq(B)) = {fp(fq(b1)), fp(fq(b2)), …, fp(fq(bn))} fq(fp(A)) Hellman密钥交换思想,求双⽅方集合的交集,保护交集之外的数据 数据集 A = {a1, a2, …, an} 1.1随机⽣生成秘钥p,公共参数N 1.2加密数据集A的每个元素 fp(A) = {fp(a1), fp(a2), …, fp(an)} 秘钥K,公共参数N,加密函数 ,满⾜足交换律律 = = = fK(x) = xKmod N fpq(x) fq(fp(x)) fp(fq(x)) fqp(x)0 码力 | 37 页 | 6.20 MB | 1 年前3
1.2 Go 在分布式系统开发中的应用conponents 起因以及一些差异 not gonna cover every details zookeeper vs etcd 起因: reborndb是一个分布式redis集群框架 支持透明切换引擎 为了同时支持zookeeper和etcd zookeeper vs etcd zookeeper: session etcd: stateless zookeeper vs etcd0 码力 | 20 页 | 131.34 KB | 1 年前3
Go可观测性实践• Processor • Exporter 微服务业务架构图 项目工程layout 遥测数据处理架构 链路追踪 第二部分 无所不在的部署 持续监控 低消耗 应用级透明 延展性 链路追踪设计目标 链路追踪 Dapper 每个请求都生成一个全局唯一的 traceid,端到端透传到上下游所有节点,每一层生成一个 spanid, 通过traceid 将不同0 码力 | 35 页 | 2.88 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,服 务网格负责在这些拓扑中实现请求的可靠传递。在实践中,服务网格通常实现为一组轻量 级网络代理,他们与应用程序部署在一起,而对应用程序透明。 Service Mesh 的初衷 5 图片来源: https://new.qq.com/omn/20190806/201908 06A0SM4Q00.html 图片来源: https://www0 码力 | 63 页 | 880.85 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a结构体(第16章)两篇文章得以验证。 Go中的指针和结构体类型的内存结构 和C语言很类似。 另一方面,Go也可以被看作是C语言的一个扩展框架。 在C中,值的内存结构 都是很透明的;但在Go中,对于某些类型的值,其内存结构却不是很透明。 在C中,每个值在内存中只占据一个内存块(第43章)(一段连续内存);但 是,一些Go类型的值可能占据多个内存块。 以后,我们称一个Go值分布在不同内存块上的部分为此值的各个值部(value 标准库包math/rand和crypto/rand生成的随机 数之间有什么区别? 通过math/rand标准库包生成的伪随机数序列对于给定的种子是确定的。 这样 生成的随机数不适用于安全敏感的环境中。 如果处于加密安全目的,我们应 该使用crypto/rand标准库包生成的伪随机数序列。 标准库中为什么没有math.Round函数? math.Round函数是有的,但是只是从Go 1.10开始才有这个函数。0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a结构体(第16章)两篇文章得以验证。 Go中的指针和结构体类型的内存结构和 C语言很类似。 另一方面,Go也可以被看作是C语言的一个扩展框架。 在C中,值的内存结构 都是很透明的;但在Go中,对于某些类型的值,其内存结构却不是很透明。 在 C中,每个值在内存中只占据一个内存块(第43章)(一段连续内存);但 是,一些Go类型的值可能占据多个内存块。 以后,我们称一个Go值分布在不同内存块上的部分为此值的各个值部(value 标准库包math/rand和crypto/rand生成的随机数之间有什么区别? 通过math/rand标准库包生成的伪随机数序列对于给定的种子是确定的。 这样 生成的随机数不适用于安全敏感的环境中。 如果处于加密安全目的,我们应该 使用crypto/rand标准库包生成的伪随机数序列。 标准库中为什么没有math.Round函数? math.Round函数是有的,但是只是从Go 1.10开始才有这个函数。0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a(第16章)两篇文章得以验证。 Go中的指针和结构体类型的内存结构和C语言很类 似。 另一方面,Go也可以被看作是C语言的一个扩展框架。 在C中,值的内存结构都是很 透明的;但在Go中,对于某些类型的值,其内存结构却不是很透明。 在C中,每个 值在内存中只占据一个内存块(第43章)(一段连续内存);但是,一些Go类型的 值可能占据多个内存块。 以后,我们称一个Go值分布在不同内存块上的部分为此值的各个值部(value 标准库包math/rand和crypto/rand生成的随机 数之间有什么区别? 通过math/rand标准库包生成的伪随机数序列对于给定的种子是确定的。 这样生 成的随机数不适用于安全敏感的环境中。 如果处于加密安全目的,我们应该使用 crypto/rand标准库包生成的伪随机数序列。 标准库中为什么没有math.Round函数? math.Round函数是有的,但是只是从Go 1.10开始才有这个函数。0 码力 | 591 页 | 21.40 MB | 1 年前3
共 19 条
- 1
- 2













