- 博客(151)
- 资源 (16)
- 收藏
- 关注
原创 [Fabric] 第11章 Fabric CA应用与配置
文章目录11.1 简介11.2 安装服务端和客户端11.2.1 本地编译11.2.2 获取和使用Docker镜像(推荐)11.1 简介Fabric CA项目主要功能:负责Fabric网络内所有实体的身份管理,包括身份的注册、注销等负责证书管理,包括ECerts(身份证书)、TCerts(交易证书)等的发放和注销服务端支持基于客户端命令行和RESTful API的交互方式基本组件采用典型的CS架构,目前包含两个基本组件:服务端:fabric-ca-server实现核心的PKI服务
2021-10-18 20:14:43
11843
原创 [Fabric] 第13章 区块链应用开发
文章目录13.1 简介1. 智能合约开发2. 应用程序开发13.2 链码的原理、接口与结构13.2.1 Chaincode接口13.2.2 链码结构13.2.3 链码基本工作原理13.3 链码开发API13.3.1 账本状态交互API13.3.2 交易信息相关API13.3.3 参数读取API13.3.4 其他API13.4 应用开发案例一:转账13.5 应用开发案例二:资产权属管理13.6 应用开发案例三:调用其他链码13.7 应用开发案例四:发送事件13.8 开发最佳实践小结13.1 简介智能合约是
2021-09-26 20:43:09
540
原创 [Fabric] 第12章 Fabric1.0架构与设计
第12章 Fabric架构与设计https://note.youdao.com/s/LRVDAF5Q
2021-09-24 13:46:55
6469
原创 [Ethereum] 以太坊中涉及到的数据结构与算法
文章目录版本说明一、数据结构1. MPT2. LevelDB二、算法1. 迪菲-赫尔曼密钥交换2. 以太坊快速同步算法3. 以太坊的布隆过滤器4. POW一致性算法三、协议1. RPC协议2. Kademlia协议3. UDP协议参考资料地址版本说明源码分析使用的版本为:v1.10.3一、数据结构1. MPT以太坊源码中的trie包实现了Merkle Patricia Tries(MPT),这种数据结构实际上是一种Trie树变种。MPT是以太坊中一种非常重要的数据结构,用来存储用户账户的状态及其
2021-07-08 11:19:17
524
1
原创 [Ethereum] 以太坊源码分析(五)p2p+eth
文章目录版本说明参考资料地址p2p的源码又下面几个包discover 包含了Kademlia协议。是基于UDP的p2p节点发现协议。discv5 新的节点发现协议。 还是试验属性。本次分析没有涉及。nat 网络地址转换的部分代码netutil 一些工具simulations p2p网络的模拟。 本次分析没有涉及。discover部分的源码分析发现的节点的持久化存储 database.goKademlia协议的核心逻辑 tabel.goUDP协议的处理逻辑udp.go网
2021-07-05 20:17:44
1995
1
原创 [Go] Go面试题
文章目录一、Go 语言笔试面试题(基础语法)1. = 和 := 的区别?2. 指针的作用?4. Go 有异常类型吗?5. 什么是协程(Goroutine)6. 如何高效地拼接字符串7. 什么是 rune 类型8. 如何判断 map 中是否包含某个 key ?9. Go 支持默认参数或可选参数吗?10. defer 的执行顺序12. Go 语言 tag 的用处?13. 如何判断 2 个字符串切片(slice) 是相等的?14. 字符串打印时,%v 和 %+v 的区别15. Go 语言中如何表示枚举值(enum
2021-06-18 10:29:15
630
原创 [区块链] 区块链面试题
文章目录一、区块链面试题1. 什么是区块链?2. 流行的区块链平台有哪些。3. 区块链是如何工作的?4. 为什么区块链是一种值得信赖的方法?5. 什么是区块链中的区块,如何识别?6. 块的主要元素是什么?7. 是否可以从区块链的网络中删除一个或多个块?8. 将数据写入块后是否可以更改数据?9. 区块链数据库中可用的记录类型是什么?10. 哪种类型的记录可以保存在区块链中?11. 有哪些不同类型的区块链?12. 什么是分类账,并命名区块链中用户考虑的常见分类账类型?13. 公钥和私钥有什么区别?14. 区块链
2021-06-18 10:07:19
3136
原创 [Ethereum] 以太坊源码分析(一)RLP源码分析
文章目录版本说明参考资料地址版本说明源码分析使用的版本为:v1.10.3参考资料地址以太坊白皮书以太坊黄皮书(英文版)以太坊黄皮书(中文版)分析参考资料博客参考资料
2021-06-14 15:56:11
517
3
转载 [其他] 前端项目开发规范
前端 JS 项目开发规范转载:https://gitee.com/lab1024/smart-admin/edit/master/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/front-standard-guide.md规范的目的是为了编写高质量的代码,让你的团队成员每天得心情都是愉悦的,大家在一起是快乐的。引自《阿里规约》的开头片段:----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,
2021-05-29 09:33:55
1276
原创 [Ethereum] 以太坊区块链搭建与使用(二)-私有链配置与启动
一、创世块随便找一个目录vim genesis.json{ "config": { "chainId": 666, "homesteadBlock": 0, "eip150Block": 0, "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", "eip155Block": 0, "eip158Block": 0, "byzant
2021-05-27 19:15:48
573
1
原创 [Ethereum] 以太坊源码分析(二)分析包Trie
文章目录版本说明知识补充Merkle树Patricia TriesTrie树以太坊的MPT源码分析编码转换:encoding.go数据结构与方法node:node.gonode的结构node的方法Trie:trie.goTrie的结构Trie的方法1. Trie树的新建2. Trie树的插入3. Trie树的获取4. Trie树的删除5. Trie树的序列化和反序列化6. Trie树的cache管理Trie树的默克尔证明:proof.goTrie的加密:security_trie.gotrie包中其他的功能
2021-05-27 19:12:06
696
转载 [信息安全] 数据安全(反爬虫)之「防重放」策略
数据安全(反爬虫)之「防重放」策略转载:https://mp.weixin.qq.com/s/uwW8riLk1miyy7D6ITw_og本文将从 API 数据接口的层面讲一种技术方案,实现数据安全。一、 API 接口请求安全性问题API 接口存在很多常见的安全性问题,常见的有下面几种情况即使采用 HTTPS,诸如 Charles、Wireshark 之类的专业抓包工具可以扮演证书颁发、校验的角色,因此可以查看到数据拿到请求信息后原封不动的发起第二个请求,在服务器上生产了部分脏数据(接口是背后的
2021-04-26 15:18:57
406
转载 [NIO] IO与NIO
文章目录一、基础概念1、阻塞与非阻塞2、同步与异步3、传统BIO模型4、伪异步IO模型5、NIO模型6、Buffer的分配:二、NIO优点一、基础概念1、阻塞与非阻塞阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:阻塞:线程持续等待资源中数据准备完成,直到返回响应结果。非阻塞:线程直接返回结果,不会持续等待资源准备数据结束后才响应结果。2、同步与异步同步与异步是指访问数据的机制,同步一般指主动请求并等待IO操作完成的方式。异步则指主动请求数据后
2021-03-30 15:43:54
137
原创 [Ethereum] 以太坊区块链搭建与使用(一)-私有链
步骤一、下载go语言,并配置环境变量 //以太坊源代码依赖的编译与运行环境二、通过git clone以太坊源码(go-ethereum),并编译零、环境说明服务器版本: Ubuntu18.04序号环境名称环境版本1gcc7.5.02gcc-c++7.5.03go1.164go-ethereum1.9.25一、go安装step1:下载官方(一般打不开):https://golang.org/dl/国内镜像:https://g.
2021-02-28 18:28:23
626
转载 [Elasticsearch] ES修改字段类型
参考:https://blog.csdn.net/weixin_41228362/article/details/107382647概述首先说明es中索引的字段类型是不可修改的,只能是重新创建一个索引并设置好mapping,然后再将老索引的数据复制过去。操作步骤1、创建索引,并指定mappingPUT /web-log{ "mappings" : { "properties" : { "classMethod" : { "type" : "text
2021-01-15 17:43:53
2695
转载 [Elasticsearch] Elasticsearch索引的基本操作(5)-别名设置
原文链接:https://blog.csdn.net/fenglibing/article/details/92844250?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control1、别名Elasticsearch中的别
2021-01-15 17:41:35
775
转载 [Elasticsearch] Java操作Elasticsearch6实现group by分组查询
通过上篇博客的总结,我们知道了在Elasticsearch6中count、distinct和count(distinct)方法的使用。本篇博客继续聚合查询的学习,也就是对应mysql中的group by的使用。公共实体对于下面要介绍的查询,返回结果为统一实体,代码如下:/** * 单个字段分组返回结果 * * @date : 2020-11-18 15:02 */@Datapublic class AggregationForOneDTO implements Serializable {
2021-01-13 22:08:00
1544
原创 [ElasticSearch] 亿级数据分页查询优化过程
一、需求场景公司业务需求,有约10亿条数据,根据一些条件进行查询,字段数量比较庞大(27个),查询条件不太多(约8个),例如比较常见的时间范围、地区范围。程序要求响应速度在200ms以内。二、硬件环境3台搭载ES6.8.5的服务器组成ES集群,配置均为1.4T硬盘+256G内存三、整体设计采用分页查询展示数据避免ES中的联表等复杂操作字段均设置为keyword保证占用最少的空间四、分页方法选择(参考:博文地址)From+Size因为最初考虑不周,使用的是RestHighLeve
2021-01-13 10:13:43
4142
1
转载 [ElasticSearch] ElasticSearch在数十亿级别数据下,如何提高查询效率?
面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对 es 确实玩儿
2021-01-13 10:11:54
744
原创 [设计模式] 策略模式实现处理不同种地址字符串
一、需求场景验证两种地址符串是不是一个地址二、策略模式(参考菜鸟教程)在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。何时使用:
2020-12-31 16:37:38
176
原创 [设计模式] 模板方法模式与多线程结合实现数据的批处理
一、需求场景1. 对原始数据进行分析结果包含三类数据,分别是热点问题、疏整促数据、高频点位。三种数据结果表均包含日月时间维度,热点问题、疏整促数据除了时间维度还包含全市、区、街道(和村)三个(或者四个)区域维度。热点问题、疏整促两类数据的结果表字段有很多相似之处。例如某种数据ID和数量、在全市(或区或街乡镇)的占比、当日数量、(市或区或街乡镇)排名、环(同)比量、环(同)比率、环(同)比排名变化、2. 批处理执行流程① 初始化数据库查询参数② 从数据取出当日、日累计(指定日之间的累计)、同比累
2020-12-31 16:09:35
328
原创 [设计模式] 抽象工厂模式实现文件数据导出功能
一、需求场景将数据库中的数据进行处理然后使用excel进行导出。二、数据特点数据种类(产品族)分为指定几种,种类下面有不同的产品(类似不同工厂有不同的产品),每次触发接口都是使用某一产品作为实体返回。考虑到需求和数据格式决定使用抽象工厂设计模式完成此需求。三、抽象工厂模式 (参考runoob.com)抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。意图
2020-12-31 12:56:07
502
转载 [Java] JAVA 开发规范
JAVA 开发规范(转载)v1.0.0 2019/09/06本篇规范基于阿里巴巴、华为的开发手册,添加了我们团队的开发风格规范,补充了一些细节。感谢前人的经验和付出,让我们可以有机会站在巨人的肩膀上眺望星辰大海。规范不是为了约束和禁锢大家的创造力,而是为了帮助大家能够在正确的道路上,尽可能的避免踩坑和跑偏。规范可以让我们无论单枪匹马还是与众人同行的时候都能得心应手。规范可以让我们在面对日益变态的需求和做代码接盘侠的时候,更优雅从容。规则并不是完美的,通过约束和禁止在特定情况下的特性,可能会对
2020-12-28 20:50:57
340
原创 [ES] Result window is too large, from + size must be less than or equal to: [10000] but was [10010].
使用elasticsearch做分页查询时,当查询记录超过10000时,会报如下错误:Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://127.0.0.1:9200], URI [/resource_center/resource_sentiment_bj/_search?rest_total_hits_as_int=true&typed_keys=true&ignore_
2020-12-14 15:25:21
676
原创 [ElasticSearch] SpringBoot整合ElasticSearch
一、ES介绍参考:https://www.elastic.co/cn/elasticsearch/Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。二、ES搭建三、环境介绍springboot版本:2.3.0.RELEASEes版本:6.4.3kibabna版本:6.4.3四、代码git: https://gitee.com/
2020-11-28 12:40:13
155
原创 [HanLP]SpringBoot2.3整合HanLP1.7.7
一、需求场景提取地址字符串中的 区、街乡镇、村的字段,使用获取到的字段向经信局发起请求获取经纬度和点位名称,保存至数据库。二、使用技术HanLP+SpringBoot三、设计思路四、具体实现pom引入jar<dependency> <groupId>com.hankcs</groupId> <artifactId>hanlp</artifactId> <version>1.7.7</ver
2020-11-17 15:25:36
688
原创 [Java] Java中for(;;)和while(true)有区别吗?
背景常常看到源码中是这样的写循环的:JDK1.8下的ThreadPoolExecutor.awaitTermination方法当然,在JDK11_0_9下的ThreadPoolExecutor.awaitTermination方法变成了使用while那么问题来了:for(;;)和while(true)有区别吗?查看字节码测试代码package com.hbuzzs.leetcode;/** * @Description TODO * @Author zhangzhishun *
2020-11-17 13:09:15
234
1
原创 [Java] CyclicBarrier 使用详解
1. CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarrier。2. 怎么使用 CyclicBarrier2.1 构造方法public CyclicBarrier
2020-11-17 09:58:10
169
原创 [Ubuntu] Ubuntu16.04安装kibana
1. 安装选择版本参考:elasticsearch和Kibana版本对比wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.3-linux-x86_64.tar.gztar -zxvf kibana-6.4.3-linux-x86_64.tar.gzmv kibana-6.4.3-linux-x86_64 /usr/local/useradd kibanachown -R kibana:kibana /usr/local/k
2020-11-08 15:25:29
279
原创 [ElasticSearch] Ubuntu 安装 ES (ElasticSearch)
1. 安装java jdk#更新软件包列表sudo apt-get update#安装openjdk-8-jdksudo apt-get install openjdk-8-jdk#查看版本java -version2. 下载安装包(我的是elasticsearch-6.4.3)#下载压缩包wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz#解压tar -zxvf e
2020-11-08 14:40:53
788
原创 [SpringCloud]从零搭建基于SpringCloud的网约车后端项目(三)
一、目前进展1 基础环境搭建成功2 分布式服务、多源数据配置demo已经跑通二、阐述思想这种大项目更有意义的是技术的选型和管理。我觉得面试官一定会问为什么选择这种技术,这种技术相对于其他技术有什么优缺点,系统的稳定性、可承受的并发量等等问题。在这篇文章将着重讲述技术选型和最终设计架构。本来应该在第一节讲述技术选型的,但是第一节的基础环境无论将来如何选型一定要使用的,所以就放在了第二节,那么开始吧:设计目标就是前文所阐述的目的,虽然性能指标不好预估,但是我会尽可能考虑这些问题,三、选型准则.
2020-10-18 13:23:37
615
原创 [SQL] 不理解SQL执行顺序带来的bug
分析SQL执行顺序工作中一段sql因为不理解sql执行顺序导致结果与预期不符,为了复现这种情况,使用新表进行模拟。1. 建表-用户分组表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for test-- ----------------------------DROP TABLE IF EXISTS `test`;CREATE TABLE `t
2020-10-16 11:14:15
122
转载 [HanLP]HanLP词性标注集
HanLP使用的HMM词性标注模型训练自2014年人民日报切分语料,随后增加了少量98年人民日报中独有的词语。所以,HanLP词性标注集兼容《ICTPOS3.0汉语词性标记集》,并且兼容《现代汉语语料库加工规范——词语切分与词性标注》。 字母描述a形容词f方位词mq数量词nn工作相关名词ad副形词g学术词汇n名词nnd职业 ag形容词性语素gb生物相关词汇nb生物名nnt职务职称 al形容词性惯用语gbc生物类别nba动物名nr人名 ...
2020-09-19 11:27:25
568
原创 [算法]寻找一个字符串中的最长重复子串(后缀数组)
寻找一个字符串中的最长重复子串(后缀数组)因为工作场景,需要对字符串中重复的子串进行删除操作,那么最重要的过程就是找到最长重复字串,网上有很多暴力方法,我觉得没什么意思,同事也说可以使用正则,然而我不会,所以还是用拿手的java代码解决吧。(本文参考:https://blog.csdn.net/u012114090/article/details/81669021)后缀数组其实可以看寻找一个字符串中的最长重复子串(后缀数组)作一个由字符串s倒数i个字符组成的子串的集合,其中0<i<s.len
2020-09-14 21:41:40
994
原创 [SpringCloud]从零搭建基于SpringCloud的网约车后端项目(二)
因为公司项目着急,加上自己把一些时间用在看书上了,所以实战稍微慢了点,不过也是有成果的。一、前言1. 目前进展1.1 基础环境搭建成功1.2 分布式服务、多源数据配置demo已经跑通2. 接下来目标2.1 使用RabbitMQ跑通2.2 使用Nacos、GateWay、RabbitMQ等技术实现demo2.3 逐个完成模块二、阐述思想这种大项目更有意义的是技术的选型和管理。我觉得面试官一定会问为什么选择这种技术,这种技术相对于其他技术有什么优缺点,系统的稳定性、可承受的并发量等等问题。在
2020-09-02 18:03:56
862
原创 [Java]Java中clone( )和new效率比较、深浅拷贝的思考
对象创建的几种方法:1.使用new关键字2.使用clone方法3.反射机制4.反序列化以上四种都可以产生java对象1,3都会明确的显式的调用构造函数2是在内存上对已有对象的影印 所以不会调用构造函数4是从文件中还原类的对象 也不会调用构造函数何为clone()?1.拷贝对象返回的是一个新的对象,而不是一个对象的引用地址;2.拷贝对象已经包含原来对象的信息,而不是对象的初始信息,即每次拷贝动作不是针对一个全新对象的创建。clone()和new那个更快?利用clone,在内存中进行数
2020-08-25 13:00:54
493
原创 [MySQL]数据库时区bug
异常提示:Caused by: java.sql.SQLException: The server time zone value 'PDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time z
2020-08-22 10:28:39
269
原创 [算法]莱茵斯坦距离算法优化
算法介绍:莱文斯坦距离算法用途:查询字符串之间相似度算法问题:对于“abcdef”和“higabc”算法计算结果为0,不符合实际,“abc”为相似字符串优化方法:原来方法最后计算结果是(1-最长不同字符串长度)/ 最长字符串长度,优化后的方法将最长不同字符串长度的结果由d[n][m]改为数组最后一行或者最后一列的最小值(后面优化后的代码中的getRowColumnMin函数实现)优化前算法Java实现:import org.junit.Test;/** * <h3>Jav
2020-08-20 19:03:06
563
原创 [SpringCloud]从零搭建基于SpringCloud的网约车后端项目(一)
[SpringCloud]从零搭建基于SpringCloud的微服务(一)
2020-08-18 17:45:32
1233
原创 [Ubuntu]Nginx集群配置
1.安装依赖包(主从服务器一致)sudo apt-get install libssl-devsudo apt-get install opensslsudo apt-get install libpopt-dev2.安装keepalived(主从服务器一致)sudo apt-get install keepalived3.配置keepalived.conf(apt安装完后,程序创建了/etc/keepalived目录,但是没有生成keepalived.conf,自己手动写了一个)a) 主
2020-08-18 16:44:46
311
hyperledger-fabric-linux-amd64-1.4.0-and-ca.zip
2020-02-13
MVC设计模式的JavaWeb项目所需要的jar(Jsp+Servlet+JavaBean(EJB)).zip
2019-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人