自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 资源 (5)
  • 收藏
  • 关注

原创 自研规则引擎

核心业务语义规则:规则引擎里面的最基本的原子定义,支持一系列特征值的基础运算,包括与或运算。隶属于场景,可以被该场景下的所有规则集所引用决策流:将一系列规则以流的形式组合而成,规则集中的其中一个执行策略规则集:业务调用的基础单位,业务调用使用规则编码,支持多种执行策略,包括全部执行,命中退出,决策流等场景:包含多个规则集和多个规则特征值:规则配置的变量就是特征值,特征值的数据都来源于数据字典数据字典:定义一系列类型数据,包括字符,布尔,数值,日期等,作为特征值的原始数据一期功能要求规则

2021-09-13 18:10:42 783 1

原创 数据库中间件系列架构实战-功能解析

读写分离在主从同步正常时,解析sql语句,根据行为转发到主库写或者从库读当主库宕掉后,以Proxy和MYSQL的心跳来判断,读写操作都会发到从库上从库宕掉后,以Proxy和MYSQL的心跳来判断,读写操作都会发到主库上分片分片原则与拆分表有关系的表一起分表,例如事务,业务关联依据业务来分片,如果没有,才用主键分片选择的业务字段,应该是最频繁的或者最重要的查询条件选择的...

2019-12-29 21:52:00 190

原创 区块链测试方案

测试依据《区块链技术参考框架》《总体要求和评价指标》《功能测试方法》《性能基准测试方法》《Baas测试方法》《安全测试方法》《溯源应用规范》《供应链金融应用规范》测评体系性能测试测出底层链的性能极值,以此为不同规模应用场景提供参考依据。原则单链单通道单片每笔交易进行有效签名交易类型构造需统一性能测试类别条件类别按照每秒发送交易量与每秒上链交易量的比值区分所有类别对4节点、16节点的规模分别展开性能测试类别压力测试 比值在1上下浮动, 9

2021-09-16 16:26:48 1419

原创 Fisco调研报告

2021-09-16 15:03:26 214

原创 xuperchain源码分析-智能合约

XuperBridgeXuperBridge为所有合约提供统一的合约接口,从抽象方式上类似于linux内核对应于应用程序,内核代码是一份,应用程序可以用各种语言实现,比如go,c。类比到合约上就是各种合约的功能,如KV访问,QueryBlock, QueryTx等,这些请求都会通过跟xchain通信的方式来执行,这样在其上实现的各种合约虚拟机只需要做纯粹的无状态合约代码执行。此处的合约就是真正的可执行的智能合约,和刚才分析的ContractInterface不同智能合约类设计合约部署看一下wa

2021-09-15 18:48:09 5385

原创 xuperchain源码分析-交易

以一个简单的交易为例:./xchain-cli transfer --to czojZcZ6cHSiDVJ4jFoZMB1PjKnfUiuFQ --amount 10 --keys data/keys/ -H 127.0.0.1:37101xuperchain内部的执行流程如下:

2021-09-15 17:37:08 209

原创 加密算法调研

什么是加密加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。为什么需要加密区块链网络中,不存在监督机制,当交易和区块在网络中传播时,如何才能保证才能保证数据不被篡改?加密类型分类对称加密定义:称作私钥加密,加密和解密使用相同的密钥,密钥:在加密的算法中,将明文转化成暗文。或者密文转化成明文的时候,需要用到的私钥。特点:算法公开、计算量小、加密速度快、加密效率高、适合加密比较大的文件;缺点:通信双方都使

2021-09-15 17:24:07 4092

原创 区块链P2P网络协议演进过程

区块链是以加密机制、储存机制、共识机制等多种技术组成的分布式系统,可以在无中心服务器的情况下实现相互信任的点对点交易功能。区块链最大的特点是去中心化和分布式,区块链共识机制使得参与节点共同为系统提供服务,实现中心化系统中类似金融中介机构的功能。共识机制是网络大部分节点在约定时间段内对交易状态达成相同的确认,其中共识性通过工作量证明(POW)、权益证明(POS)、实用拜占庭容错(PBFT)等多种共识算法实现。而一致性则要求大部分节点在约定时间段内保持数据内容一致,从而利用共识算法实现共识。传统中心化网络系统需

2021-09-15 17:09:43 9908 2

原创 xuperchain源码分析-核心数据结构

XChainCore ,保存区块链所有核心数据信息type XChainCore struct { con *consensus.PluggableConsensus Ledger *ledger.Ledger Utxovm *utxo.UtxoVM P2pSvr p2p_base.P2PServer LedgerKeeper *LedgerKeeper bcname string log .

2021-09-15 15:15:03 200

原创 xuperchain源码分析-接口

XchainServer,TCPServer的对外接口// XchainServer is the server API for Xchain service.type XchainServer interface { // SelectUTXOBySize merge many utxos into a few of utxos SelectUTXOBySize(context.Context, *UtxoInput) (*UtxoOutput, error) // PostTx p

2021-09-15 15:12:54 163

原创 xuperchain源码分析-启动过程

xuperchain的启动分为两个比较大的过程,一个是节点的初始化,另一个是挖坑的初始化

2021-09-15 15:04:58 105

原创 xuperchain源码分析-合约

这里的合约定义更多的是自动执行约定,而不是预置了一个带有合约地址的合约代码,当时看源码时候就产生过疑惑合约类图Contract表示一种自定义执行约定,调用合约的方式必须是交易,交易到区块上面打包。每一个合约实现,都被称为一个module,上面就有4个module,tdpos,kernel,consensus,proposal。tdposXPoS是超级链的一种改进型的DPoS算法,他是在一段预设的时间长度(一轮区块生产周期)内选择若干个验证节点,同时将这样一轮区块生产周期分为N个时间段, 这若干个

2021-09-15 14:53:18 6585

原创 xuperchain源码分析-插件机制

背景因为最近我们在自研底层联盟链,所以调研了现在市面上的主流的公链,联盟链。xuperchain基于插件机制,实现多个核心模块可替换,包括存储,共识,网络等。下面我们就来看看这个插件机制是如何实现的PluginMgr 插件管理器// PluginMgr defines the data struct of plugin manager,只管理配置文件,不管理实例type PluginMgr struct { pluginConf map[string]map[string]confNode

2021-09-15 14:45:27 164

原创 自研图谱平台

产品背景为配合链路分析产品的开发以及针对地址关联分析的功能开发,关联图谱分析已成为项目中重要的一环。对数据的多维度关联关系的整合与展示,并在此基础上分析地址的详情、风险控制提供有力的支撑,在业务的发展过程中,对于关联图谱分析的需求也日益突出,各业务对关联图谱提出了多样化的需求。产品定位图谱平台是一站式交易图谱数据分析服务平台,用户可以依托该平台顺利完成地址关系的抽取,关系挖掘,交易分析等全流程服务,并能灵活将其服务模块进行api开放共享。目的是为了快速构建出满足符合业务需求的交易图谱应用,解决业务目标

2021-09-15 11:38:27 194

原创 Gremlin vs Cypher vs nGQL

图数据库是使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。虽然和关系型数据库存储的结构不同(关系型数据库为表结构,图数据库为图结构),但不计各自的性能问题,关系型数据库可以通过递归查询或者组合其他 SQL 语句(Join)完成图查询语言查询节点关系操作。得益于 1987 年 SQL 成为国际标准化组织(ISO)标准,关系型数据库行业得到了很好的发展。同 60、70 年代的关系型数据库类似,图数据库这个领域的查询语言目前也没有统一标准,虽然 19 年 9 月经过国际 SQL 标准委员会

2021-09-14 16:44:01 442

原创 Cypher查询语言

背景介绍属性图模型以及其上的Cypher查询语言最早定义于著名的图数据库系统——Neo4j。Neo4j是由Neo4j公司开发的图数据库系统,其起源于2000年Neo4j的创始人开发的多媒体资产管理系统。在这个多媒体资产管理系统中,数据模型经常会发生变化,而且数据结构以及访问控制机制非常复杂。为此,Neo4j的创始人们选择了用图模型来存储“关系”并在此系统中实现了变长的遍历运算。此外,该系统通过属性集合的方式来对图上的元素进行标记。由此,Neo4j的雏形形成了。2007年开始,上面那个多媒体资产管理系统开

2021-09-14 16:38:24 1523

原创 neo4j调研

简介neo4j是基于Java语言编写图形数据库。图是一组节点和连接这些节点的关系。图形数据库也被称为图形数据库管理系统或GDBMS。Neo4j的是一种流行的图形数据库。 其他的图形数据库是Oracle NoSQL数据库,OrientDB,HypherGraphDB,GraphBase,InfiniteGraph,AllegroGraph。Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构

2021-09-14 16:33:49 1044

原创 规则引擎调研报告

背景我们公司由于业务的极具扩大,每天经过系统的金额也达到了20亿美金左右,这个时候对资金的管控就不能像以前那样分散在不同的系统,由不同的部门负责了。所以说,我们成立了风控部门,必须成立了专门的研发团队负责风控需求,要开始做风控了。我受命去调研如何做风控。发现风控平台一般都需要一个叫规则引擎的东西,那么我就去调研了规则引擎的一些现状。目前公司内部规则执行现状if(f1){ if(a||b||c||d)}if(f2){}if(a&b&d){}优点当规则较少、变动不频繁时

2021-09-13 15:21:17 2546 1

原创 规则引擎Drools example3说明

规则代码package org.drools.examples.banking rule "Rule 01" when $number : Number( ) not Number( intValue < $number.intValue ) then System.out.println("Number found with value: " + $number.intValue() ); delete(

2021-03-14 18:10:26 196

转载 SSL/TLS工作原理

转载:https://zhuanlan.zhihu.com/p/36981565为了保证网络通信的安全性,需要对网络上传递的数据进行加密。现在主流的加密方法就是SSL (Secure Socket Layer),TLS (Transport Layer Security)。后者比前者要新一些,不过在很多场合还是用SSL指代SSL和TLS。先来回顾一下网络通信加密的发展过程,假设A和B之间要网络通信。远古时代--远古时代自然是民风淳朴,路不拾遗,夜不闭户。A要发数据给B,根本不用担心.

2021-01-06 17:58:37 170

原创 以太坊基本数据结构分析

声明:此为使用网上多处资料整理而成,由于很多地方内容相同,已经分不清哪里是原创一. 以太坊的区块结构从上图可以看到,区块由两部分组成,分别是区块头(header)和区块体(body)两部分。1. 区块头(header)区块头存储了区块的元信息,用来对区块内容进行一些标识,校验,说明等。区块头里字段分为两部分区块头和区块体。通用字段 ParentHash: 父区块的哈希值。 Root:全局状态MPT树的根哈希,世界状态的哈希,这个全局状态树包含了以太坊网络中每一个账户的一组键值对,sta

2020-11-23 16:23:53 4486 1

原创 以太坊的MPT树,以及编码,leveldb存储

声明:此为使用网上多处资料整理而成,由于很多地方内容相同,已经分不清哪里是原创一.MPT树1. Trie树Trie,又称为字典树或者前缀树 (prefix tree),属于查找树的一种。它与平衡二叉树的主要不同点包括:每个节点数据所携带的 key 不会存储在 Trie 的节点中,而是通过该节点在整个树形结构里位置来体现(下图中标注出完整的单词,只是为了演示Trie的原理);同一个父节点的子节点,共享该父节点的 key 作为它们各自 key 的前缀,因此根节点 key 为空;待存储的数据只存于叶

2020-11-19 17:33:52 1739

原创 青铜三人行之两数之和

哈喽,大家好,欢迎来到青铜三人行的每周一题现场。在接下来的时间里,我们三人(Helen、书香、曾大师)会在每周选择一道编程算法题来完成,和大家一起探讨一下解题的思路。所谓每周一题,代码无敌,欢迎各位小伙伴们一起进入我们的刷题之旅~两数之和 青铜三人行——每周一题@两数之和 力扣题目​给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返

2020-06-15 23:24:27 166

原创 青铜三人行之三数之和

哈喽~每周一题,代码无敌。欢迎各位继续观看「青铜三人行」的刷题现场。三数之和 青铜三人行——每周一题@三数之和 力扣题目​给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如// 给定数组 nums = [-1, 0, 1

2020-06-15 23:18:12 159

原创 青铜三人行之删除链表的倒数第N个节点

每周一题,代码无敌。这周,「青铜三人行」为你带来了一道关于“链表的题目”。删除链表的倒数第N个节点 青铜三人行——每周一题@删除链表的倒数第N个节点 力扣题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3-

2020-06-15 23:15:15 148

原创 青铜三人行之在二叉树中增加一行

每周一题,代码无敌~这周「青铜三人行」带了一个二叉树的问题:在二叉树中增加一行 青铜三人行——每周一题@在二叉树中增加一行 ​力扣题目​给定一个二叉树,根节点为第1层,深度为 1。在其第 d 层追加一行值为 v 的节点。添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为 v 的左子树和右子树。将 N 原先的左子树,连接为新

2020-06-15 23:10:45 156

原创 青铜三人行之二叉树中的最大路径和

每周一题,代码无敌~这一次,青铜三人行决定在五一假期期间挑战一道难度为「困难」的题目:二叉树中的最大路径 青铜三人行——每周一题@二叉树中的最大路径和 力扣题目​给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 /

2020-06-15 23:04:06 182

原创 青铜三人行之匹配子序列的单词数

每周一题,代码无敌~这次让我们换换口味,讨论一个稍微偏实际一点的问题:视频 青铜三人行——每周一题@匹配子序列的单词数 力扣题目链接​给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。示例:输入: S = "abcde"words = ["a", "bb", "acd", "ace"]输出: 3解释: 有三个是 S 的子序列的

2020-06-15 22:58:27 158

原创 青铜三人行之组合总和

每周一题,代码无敌~这次让我们回到算法本身,来探讨一下回溯算法 青铜三人行——每周一题@组合总和 力扣题目​给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组

2020-06-15 22:52:58 150

原创 青铜三人行之青蛙跳台阶

先说一个消息,为了方便互相交流学习,青铜三人行建了个微信群,感兴趣的伙伴可以扫码加下面的小助手抱你入群哦!青铜三人行小助手青蛙跳台阶问题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21提示:0 <= n <= 100解题思路这次的题看起来偏实

2020-06-15 22:45:32 199

原创 数字证书信任链

介绍前面的“证书之什么是数字签名?”简单科普了一下为什么要使用证书。其实这些以及后面要科普的都是整个公钥基础设施PKI(Public key infrastructure)体系中一部分。下面介绍什么是数字证书的信任链证书链是一个有序的证书列表,包含SSL证书和证书颁发机构(CA)证书,使接收方能够验证发送方和所有CA是否值得信任。链或路径以SSL证书开头,链中的每个证书都由链中下一个证书标识的...

2020-04-25 19:22:21 3343

原创 Fabric-CA

Fabric CA概述参考下图展示了Hyperledger Fabric CA服务器在整个Heyperledger Fabric架构中的定位:有两种方式可以与Hyperledger Fabric CA服务器交互:使用Hyperledger Fabric CA客户端使用某种特定开发语言的Farbic SDK。所有与Hyperledger Fabric CA服务器的通信都是 使用R...

2020-04-17 19:41:14 737

原创 SSL认证:单向认证与双向认证

SSL协议说明SSL协议既用到了对称加密也用到了非对称加密,在建立传输链路时,SSL首先对对称加密的密钥使用非对称加密链路建立好之后,SSL对传输内容使用对称加密。对称加密和非对称加密对称加密:只有私钥,速度高,可加密内容较大,用来加密会话过程中的消息非对称加密:既有公钥也有私钥,加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥SSL单向认证过程具体过程:...

2020-04-17 11:09:27 1097

原创 HTTP 和 HTTPS

一、HTTP协议HTTP协议:Hyper Text Transfer Protocol(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览的传送协议,是一个客户端和服务器端请求和应答的标准(TCP),是互联网上应用最为广泛的一种网络协议,它可以使浏览器更加高效,使网络传输减少。HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP...

2020-04-16 19:38:46 119

原创 数字证书

一、数字证书数字证书可用于:发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动。数字证书的格式一般采用X.509国际标准。目前,数字证书认证中心主要签发安全电子邮件证书、个人和企业身份证书、服务器证书以及代码签名证书等几种类型证书。数字证书的格式遵循ITUTX.509国际标准。1.1 证书结构...

2020-04-16 19:21:32 1340

原创 RSA加密算法

数学知识质数质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。互质数百度百科上的解释是:公因数只有1的两个数,叫做互质数。维基百科上的解释是:互质,又称互素。若N个整数的最大公因子是1,则称这N个整数互质。常见的互质数判断方法主要有以下几种:两个不同的质数一定是互质数。例如,2与7、13与19。一个质数,另一个不为它的倍数,这两个...

2020-04-16 19:02:47 348

原创 密码学基础

密码的常用术语明文:待加密信息密文:经过加密后的明文加密:明文转为密文的过程加密算法:明文转为密文的转换算法加密密钥:通过加密算法进行加密操作用的密钥解密:将密文转为明文的过程解密算法:密文转为明文的算法解密密钥:通过解密算法进行解密操作用的密钥注意:加密与解密一般是成对出现的,但是对于单项的加密(如MD5)是不存在解密过程的密码分析:截获密文者试图通过分析截获的密文从而推断出...

2020-04-16 17:14:33 339

原创 x509证书,SSL详解

引言使用HTTP(超文本传输)协议访问互联网上的数据是没有经过加密的。也就是说,任何人都可以通过适当的工具拦截或者监听到在网络上传输的数据流。但是有时候,我们需要在网络上传输一些安全性或者私秘性的数据,譬如:包含信用卡及商品信息的电子订单。这个时候,如果仍然使用HTTP协议,势必会面临非常大的风险!相信没有人能接受自己的信用卡号在互联网上裸奔。HTTPS(超文本传输安全)协议无疑可以有效的解决...

2020-04-15 19:03:11 5972

原创 身份混合器Idemix(Identity Mixer)

什么是身份混合器(Idemix)?Idemix 是Fabric1.3新加入的功能。实现了“零知识证明“的功能,具体参阅Idemix是一套协议加密组件。它可以提供强大的身份验证和隐私保护特性。匿名性,在不透露交易者身份的情况下进行交易的能力不可链接性单个身份发送多个交易的能力Idemix有三种角色:用户发行者验证者发行者将一组用户的属性以一个数字证书的形式发布,以下简称...

2020-04-14 23:40:43 859

原创 Fabric背书策略

背书策略流程Hyperledger Fabric 区块链网络交易的执行分为以下几个步骤。Endorser 与 Committer 都是 Hyperledger Fabric 区块链网络中 Peer 节点的具体角色。与背书策略强相关的是第3步。Client 构造交易并发往 Endorser 节点,Endorser 节点执行交易并调用系统链码 ESCC 对交易签名(背书),结果返回 Clien...

2020-03-09 16:14:10 1223

插入,堆,归并,快速,选择,冒泡排序

各种排序算法,对初学者c/c++会很有帮助!

2011-07-09

空空如也

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

TA关注的人

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