自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yijiull

We will be giants.

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 SGX学习笔记

SGX系列的目录~

2020-09-14 21:45:44 370

原创 超级账本源码(V1.3)解析

Hyperledger Fabric系列的目录~

2020-07-18 00:20:03 774 4

原创 Linux下使用TC模拟网络延迟/带宽

文章目录TChandle(命名)qdiscclassless qdiscFIFO, First-In First-Out (pfifo and bfifo)SFQ, Stochastic Fair Queuingnetemclassful qdiscHTBclassfilteru32一些参考命令wondershapertcng参考TCTraffic Control.tc被用来在linux内核...

2020-03-30 11:03:49 2480

原创 学习资源汇总

这篇文章会持续更新~ [TOC]计算机网络自底向上自顶向下ping 原理与ICMP协议

2018-07-23 00:28:20 312

原创 找工作刷题记录

单调栈:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ 看了题解,TODO

2022-03-11 16:29:43 192

原创 力扣-中等题-寻找重复数

题目链接: https://leetcode-cn.com/problems/find-the-duplicate-number/这题不会写,看了题解有三种思路,这里介绍两种。二分对结果进行二分查找,对于 mid,遍历数组统计有多少个元素小于等于 mid,如果元素数量大于 mid,说明在 [L, mid] 部分有重复数字;否则在 [mid+1, R] 部分有重复数字。floyd 判圈对于数组每个元素,从 index 向 nums[index] 建立一条有向边,由于存在元素重复,肯定至少存在一个

2022-03-11 14:45:27 264

原创 实现 lower_bound 和 upper_bound

实现一下 lower_bound 和 upper_bound测试:https://leetcode-cn.com/problems/search-insert-position/int my_lower_bound(vector<int> &nums, int target) { int l = 0, r = nums.size(); int m = -1; while(l < r) { m = (l+r)/2; if(n

2022-03-11 14:04:48 299

原创 SSH stuck at pledge network

最近登录服务器做实验的时候发现 ssh 要等几十秒才能完成登录,非常郁闷,找了很久也没清楚怎么回事,最终重启解决问题。ssh 登录的时候加上 -vvv 参数,查看发现是卡在 peldge network 这一步谷歌一下搜到这个答案:link,大概有以下几种可能的方案:btmp 文件太大了,清理一下:echo "" > /var/log/btmp。一般是由于被人暴力破解导致的。禁用 DNS 解析:设置修改 /etc/ssh/sshd_config 中的 UseDNS no重启 system

2022-01-11 20:45:50 840

原创 Paxos 算法详解

欢迎关注一下我的 知乎账号,以后主要在知乎分享内容。感谢~https://www.zhihu.com/people/ypjiang96/posts很久之前看过 Paxos Made Simple 这篇论文,当时很多地方没有弄清楚就放下了。最近重新看 Paxos 算法的时候,发现网上的很多资料都云里雾里,于是决定还是来看第一手资料,理解又加深了不少,这里记录一下。以下内容主要参考了 Paxos Made Simple 这篇论文和 Raft 作者写的 Paxos Summary 文档。即使你已经很熟悉 .

2021-11-18 11:38:09 484

原创 区块链和分布式数据库的区别

欢迎关注一下我的 知乎账号,以后主要在知乎分享内容。https://www.zhihu.com/people/ypjiang96/posts说一下自己的理解,如果理解有误欢迎评论区讨论 : )首先区分一下分布式 (distributed) 和去中心化 (decentralized) 这两个词。分布式:多节点共同组成一个系统,这些节点属于同一个信任域去中心化:也是多个节点组成一个系统,但是这些节点可能属于不同的信任域同一个信任域内的节点互相信任,不同信任域的节点之前不存在信任。区块链是一.

2021-11-10 16:27:52 14691 1

原创 记一次 Debug 经历

最近修改了一个 Go 语言的开源项目,花一天时间加了几百行代码进去,然后开始了漫长的 debug 历程,耗时五天之后,终于成功把修改后的系统跑了起来。在此记录一下大型项目 debug 经验。修改源码的时候需要加:执行路径的 log关键数据的 log主要步骤如下:新建 dev 分支,开始修改源码。修改源码之后不要直接 git add *; git commit -m "feature",建议使用 git add -e filename 添加改动内容,这个时候不要把添加的 log 加进去.

2021-10-02 13:57:55 128

原创 升级 pip/pip3

每次使用 pip install --upgrade pip 升级 pip 之后经常会报错,感觉很不好用,发现一个脚本可以方便的升级各个 python 版本的 pip.# 先下载对应版本的 get-pip.py (https://github.com/pypa/get-pip)wget link_to_get-pip.py# 升级 python get-pip.py参考https://pip.pypa.io/en/stable/installation/https://github.com

2021-08-21 16:13:03 304

原创 简要介绍SIGMOD2021接收的区块链相关论文

SIGMOD 2021 将于6月20日到6月25日在西安召开,作为数据库领域毋庸置疑的顶会,今年收录了7篇区块链相关的论文,其中1篇 demo paper,6篇 research paper。这篇博客简单介绍了其中的三篇。Why do my blockchain transactions fail? A study of Hyperledger Fabric这篇论文对 Fabric 中由于 OCC 导致的 transaction failure 进行了研究,定义了三种不同的 failure 类型,并提出

2021-05-19 23:02:49 7303 2

原创 matplotlib: 如何画不连续的坐标轴

文章目录Y轴X轴科研绘图时,有时候数据范围较大,我们需要忽略一些稳定没有变化的区别,留出更多的空间来展示变化的部分;或者个别数据非常大/小,如果和其他数据等比例画在一起,会导致我们丢失其他数据的细节。这时候就需要对坐标轴进行断开,忽略一些区间内的数据。Y轴TODO: 官方文档教程: https://matplotlib.org/stable/gallery/subplots_axes_and_figures/broken_axis.htmlX轴下面这个例子,将x轴截成了三段,忽略了两段不重要的数据

2021-05-06 23:48:06 2864 1

原创 Fabric v2.2 单机部署 & 使用tape测试

文章目录部署测试本篇博客基于 Fabric v2.2 部署了一个联盟链,包含一个Org和两个peer,使用了单个节点的raft作为Ordering service。部署过程主要参考了Fabric的官方文档,大部分脚本和配置文件都来自于官方提供的样例。测试使用了 tape 这个轻量级的工具,个人觉得比 caliper 好用。部署curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.2.2 1.4.9cd fabric-samples/test-netwo

2021-04-06 16:06:25 1900 17

原创 Quorum简介&部署

文章目录简介TODO参考简介GoQuorum基于geth,在其基础上增加了一些联盟链需要的组件,主要包括以下几点:使用Raft或者Istanbul BFT共识算法,而不是PoW。加入了准入机制,而不是任何节点都可以加入网络。修改了区块产生逻辑:使用global public state root替换了global state root。(TODO)修改了区块验证逻辑:State Patricia trie分成了两个:public state trie和private state trie修

2021-02-09 12:11:23 1296

原创 Go语言之基础语法

文章目录命名命名函数外部定义的包级名字,如果首字母大写,则可以被其它包访问。var:变量const:常量 type:类型func:函数

2020-10-21 19:38:10 139

原创 Go语言之文件读取

使用bufio和io/ioutil获取命令行或者文件的内容

2020-10-21 11:55:26 304

原创 学术英语写作与演讲

学习英语写作与演讲的链接

2020-10-21 01:35:34 400

原创 系统监控:Prometheus+Grafana

使用Prometheus监控系统状状态使用Grafana可视化

2020-10-20 23:14:47 155

原创 Linux误删libc.so.6如何恢复

一个悲伤的故事=_=||

2020-09-26 12:57:35 1807 1

原创 超级账本源码解析之链码容器

本篇博客讲解Fabric如何启动链码容器并与之交互的。

2020-09-15 22:47:00 416

原创 超级账本源码解析之Endorsement Policy

介绍了Fabric的背书策略以及构建背书策略对象和验证背书策略的流程。

2020-09-14 09:22:52 697 2

原创 超级账本源码解析之MSP

文章目录CryptogenCryptogen为了更好的理解Fabric中MSP是如何工作的,我们先通过源码来看一下Fabric提供的Cryptogen这个命令行工具到底做了什么。核心代码在common/tools/cryptogen这个目录下,目录树如下:cryptogen├── ca│ ├── ca_test.go│ └── generator.go├── csp│ ├── csp.go│ └── csp_test.go├── main.go├── metadata

2020-09-13 22:06:31 516

原创 超级账本源码解析之Commit

文章目录前置Commit本系列目录:超级账本源码(V1.3)解析目录当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。前两篇博客里我们讲了【VSCC】和【MVCC】这两个过程,下面分析Commit这个过程的核心代码(HLF v1.3)。前置在gossip/state/state.go的listen函数中收到payload(其中有block和private data),通过queueNewMessage将其放入payloads中等待后续处理。然后

2020-09-04 19:21:43 327

原创 超级账本源码解析之MVCC

文章目录前置MVCC本系列目录:超级账本源码(V1.3)解析目录当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。上一篇博客里我们讲了VSCC这个过程,下面分析VSCC这个过程的代码(HLF v1.3)。前置在gossip/state/state.go的listen函数中收到payload(其中有block和private data),通过queueNewMessage将其放入payloads中等待后续处理。然后在deliverPayloads

2020-09-03 20:25:42 665

原创 超级账本源码解析之VSCC

当peer收到leader发来的block后,需要进行VSCC、MVCC、commit三步操作。下面我们从peer收到block开始,分析VSCC这个过程的代码(**[HLF v1.3](https://github.com/hyperledger/fabric/tree/release-1.3)**)。

2020-09-02 10:43:37 1155 2

原创 超级账本(关键概念)

文章目录介绍区块链网络网络组件节点类型参考本系列目录:超级账本源码(V1.3)解析目录介绍概念介绍区块链由对等节点合作维护的分布式账本,记录所有的交易,只能追加,不可修改。共识算法保证所有节点按相同顺序执行相同的交易,确保账本的一致性账本交易日志(File)+世界状态(DB)区块链网络区块链网络是为区块链应用提供服务的基础设施。网络组件排序服务(ordering service):包含一个网络配置,可以看作是该网络的管理节点,启动时定义了一系列的

2020-08-24 11:50:25 972

原创 超级账本(介绍)

文章目录介绍Hyperledger Fabric原文链接: https://hyperledger-fabric.readthedocs.io/en/release-1.3/whatis.html介绍区块链是由分布式网络节点维护的一个不可修改的交易账本,每个节点都维护一个副本,账本中的交易都由共识算法验证后打包成区块的形式,每个区块中包含前一个区块的哈希值,形成链状。第一个广受认可的区块链应用是比特币(Bitcoin),后来的以太坊(Ethereum)在其基础上引入了智能合约(smart co

2020-08-23 22:07:57 1968

原创 对ZooKeeper的一些理解

文章目录paper:ZooKeeper: Wait-free coordination for Internet-scale systemslinearizability =? strong consistency

2020-08-01 12:04:44 223

原创 FastFabric: 提高超级账本的TPS

文章目录IntroFabric架构设计实验结果paper: FastFabric: Scaling Hyperledger Fabric to 20,000Transactions per Second这篇论文对Fabric的设计做了一些优化,将TPS从3,000提高到了20,000。目前区块链技术存在的问题:吞吐量上不去(throughput)扩展性不好(scalability)延迟较高(latency)本篇论文基于Fabric对第一个问题做了优化。Intro公有链(permis

2020-07-31 00:37:24 2228 3

原创 对Raft共识算法的一些理解

文章目录为什么需要共识算法Raftpaper: In Search of an Understandable Consensus Algorithm (Extended Version)为什么需要共识算法为了保证服务的稳定性(解决单点故障问题),人们提出了副本技术(replication)。但是副本之间需要一个中心服务器进行协调(比如GFS的master,MapReduce的),那么单点故障只是转移到了中心服务器,并没有得到彻底解决。于是人们又提出了使用多个中心服务器用来容错,本质上又是副本技术

2020-06-30 07:49:01 421

原创 How to Be a Successful PhD Student

今天读了How to Be a Successful PhD Student,简单记录一下。Why Get a PhD?真的想读、想做科研读phd前先去总业界挺好的Applying to Graduate Scho要有社交、朋友,要开心和聪明人待一起You and Your Advis听导师的,导师让你去做什么的时候,去做。提醒导师,他们太忙了可能会忘记你的事情。找导师要反馈。Meetings with Your Advisor经常找导师开会,尤其是当你不想去的时候。

2020-06-26 22:34:40 559

原创 可信执行环境

文章目录Trusted Execution Environments: Properties, Applications, and Challenges软件攻击在近几十年都是一个挑战,操作系统内核作为第一道防线,通过进程隔离对软件提供了一定程度的保护。然而内核本身的漏洞、侧信道攻击、物理攻击可以无视进程的隔离对软件进行攻击。为了提供更强的软件间的隔离(包括操作系统的隔离),一些基于硬件的解决方案被提出,主要有TPMs(Trusted Platform Modules)、HSMs(Hardware

2020-06-05 16:58:21 1347

原创 容器安全问题综述

文章目录背景基于软件的保护机制Linux内核特性namaspaceControl GroupsCapabilitySecure Computation Mode(SECCOMP)基于硬件的保护机制paper: Container Security: Issues, Challenges, and the Road Ahead容器相比虚拟机有许多优势,容器可以50毫秒启动,虚拟机则需要几十秒,而且在容器在资源占用方面也比虚拟机小很多。现在流行的微服务架构与容器技术完美的结合。不过市场调查显示对其

2020-05-20 00:21:35 922

原创 Linux脚本初步

最近边查语法边写了各种脚本做实验数据分析,从0到1学会了怎么写脚本…简单记录一下方便以后查询。TODO

2020-04-17 23:57:07 175

原创 数据分析(grep & awk & sed)

文章目录grepawksedgrepawksed

2020-04-17 23:54:38 193

原创 高精度计时

文章目录clockhigh_resolution_clockrdtsc/rdtscpclock#include <ctime>#include <iostream>int main() { clock_t st = clock(); // do something clock_t ed = clock(); std::cout <&l...

2020-03-11 19:43:38 276

原创 Docker网络详解

立个FLAG:近期搞定docker网络相关的知识。

2020-01-11 14:05:32 118

原创 Hyperledger Fabric之BYFN多机部署

文章目录安装HLF配置docker网络创建启动文件运行可能出现的错误显然单机和多机部署的区别在于网络配置,也就是怎么进行docker容器之间的通信,所以多机部署的关键其实在于docker的网络通信。安装HLF五台server,系统是Ubuntu16.04,已经配置好了ssh证书登录,假设IP分别是10.22.1.12 # orderer.example.com, cli10.22.1...

2020-01-11 12:56:14 554

acm模板(正在完善中……)

蒟蒻正在完善中的acm模板,不排除有些许错误~ (这里要写到五十字才可以)

2017-10-21

空空如也

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

TA关注的人

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