- 博客(45)
- 收藏
- 关注
原创 ubuntu初始化脚本
#!/bin/bash#设置root密码sudopasswdrootsuroot#换源mv/etc/apt/sources.list/etc/apt/sourses.list.backupecho-e"debhttp://mirrors.aliyun.com/ubuntu/bionicmainrestrictedunivers...
2020-03-30 09:34:13
552
原创 jenkins问题总结
安装卸载https://blog.csdn.net/qq_35114214/article/details/88747597在浏览器登录8080出现错误:Your browser will reload automatically when Jenkins is ready/var/lib/jenkins/hudson.model.UpdateCenter.xml将http://...
2020-03-28 09:26:03
1117
原创 EOS问题总结
1、运行eosio_build.sh2、会运行scripts下的脚本,构建依赖,如果遇到下载不下来的问题,手动下载,并注释掉相应系统脚本下的代码。比如ubuntu系统,脚本对应eosio_build_ubuntu.sh。主要包括boost,mongodb,llvm。注意问题:文件存放路径,主要涉及到/tmp和~目录下。文件不一样,文件路径不一样。对应文件路径:...
2020-03-26 17:06:34
693
原创 windows安装boost
1、官网下载boost2、解压,cmd调出命令行,运行booststrap.bat此处会遇到'cl'不是内部命令的错误,需要安装visual studio的IDE,安装是需要勾选visual c++。3、运行第2部生成的b2.exe,运行则自动编译。...
2020-03-24 13:36:16
479
原创 性能优化-CPU上下文
CPU上下文:CPU中的寄存器和程序计数器。切换出的CPU上下文,会保存到linux系统内核中。分为3种:1、进程上下文,2、线程上下文,3、中断上下文(硬件通过触发信号,导致中断处理程序运行)。进程的运行空间:内核空间、用户空间。内核空间:具有最高权限,可以直接访问所以资源,包括硬件。用户空间:只有有限资源,不能访问包括内存在内的硬件只有,必须通过系统调用嵌入到内核中,才可以调用...
2020-02-17 14:33:35
94
原创 性能优化的思路
性能优化分2个角度:1、程序本身的角度2、操作系统的资源使用的角度应用程序和系统资源时相辅相成的关系。开始性能优化和分析前,需要想清楚:1、怎么才算成功,优化前和优化后的对比参数。2、从多个角度优化进行优化比对。性能优化符合28原则,80%的问题由20%的代码产生。优化也是有代价的,有可能优化了这个地方,另外的地方性能反而下降。...
2020-02-17 14:33:12
139
原创 内存是如何工作的
1、只有内核才可以直接访问使用内存。2、内核给每个进程提供一个独立的虚拟地址空间。这个空间是连续的,并且进程可以很方便的访问虚拟地址。3、虚拟地址空间分为用户空间和内核空间,进程只有进入内核态时,才可以访问内核空间。在用户态,只能访问用户空间。4、只有使用到时,虚拟内存才映射到物理内存,是通过内存映射表来实现的。内核为每个进程维护了一张内存映射表。进程使用虚拟内存时,发现还没有...
2020-02-17 14:32:45
281
原创 性能优化--CPU使用率
usr 用户态CPU时间nice 低优先级用户态CPU时间system 系统态CPU时间idle 空闲时间iowait 等待IO的时间irq 硬中断的时间softirq 软中断的时间steal 当系统运行在虚拟机中时,被其他CPU占用的时间。gust 通过虚拟化,运行其他操作系统的时间。gust_nice 以低优先级运行虚拟化的时候。CPU使用率 = 1- ...
2020-02-17 14:32:07
532
原创 CPU不可中断和僵尸进程
top时S列为进程的状态:R:运行状态i:空闲状态D:不可中断状态,进程正在和硬件交互,为了保护硬件,处于不可中断状态。Z:僵尸状态,实际上进程已经结束,但父进程没有回收资源。S:睡眠状态,可中断。T:暂停状态,进程收到SIN_STOP信号暂停。调试加断点的时候,进程就处于这种状态。X:进程已经挂掉。大量不可中断状态,系统或硬件出现故障,可能会出现,检查IO问题。...
2020-02-17 14:31:56
103
原创 fabric编译
1、编译遇到的问题cp -rf /home/fengwork/go/src/github.com/hyperledger/build/gopath/bin /home/fengwork/go/src/github.com/hyperledger/fabric/build/docker/gotools/bin2、e2e挂载- ../core.yaml:/etc/hyperledger/...
2019-03-14 10:05:43
345
原创 mysql开发环境搭建ubuntu
安装1. sudo apt-get install mysql-server2. apt-get isntall mysql-client3. sudo apt-get install libmysqlclient-dev 客户端登录:mysql -uroot -p重启mysql:service mysql restart创建数据库:create database 数...
2019-02-15 15:12:48
397
原创 共识算法-paxos
pasxos与raft,与mysql的主从复制,不同的是,不依赖于leader节点,像mysql的主节点挂了,全部网络就挂了,必须重新选举主节点,并且mysql主从复制只能主节点写。pasxos多个节点可写。二个值:value:要提议的值,也可以是某种操作(比如对a加1)number:提议的序列号,可理解为提议的版本号三个角色:1、proposer:提议者,发起提议。一轮共...
2019-02-14 17:31:44
349
原创 共识算法-pos
pos相当于把币存银行获得利息。每个币每天获得1个币龄,币龄越大,可以算出hash,打出块的几率越大。每打一次块,结算一次利息。币龄清空。至少等30天才能再去打下一个block。为了防止币多的人控制网络,90天为打块概率最大的时间。 DPOS首先每个持币人公投,选出投票数前101的见证人。开会,每个见证人随机排序,每个人在会议中规定的时间打块(2S),如果规定的时间没打,或...
2019-02-13 18:41:57
819
原创 共识算法-联邦拜占庭算法scp(stellar恒星链)
法定体的概念:一个节点,可信赖的集合。就为这个节点的法定体。层级概念:最顶层为初始信息节点,决定整个网络的最终结果。共识过程:1、节点A和他的法定体交换,初始提交,slot等内容,pre-prepare阶段。2、节点收到他的法定体的大多数节点接受slot a,他也就接受A,promise阶段。节点会给其他节点发送confirm prepare的(promise)消息。3、然...
2019-02-13 16:38:38
5926
原创 共识算法raft
很好的动画http://thesecretlivesofdata.com/raft/节点分为3种状态:leader、follower、candidateleader选举网络刚开始时,所有节点都是follwer状态,如果他们收不到leader发过来的消息,就会有其中1个节点变成candidate状态。candidate节点给其他节点发送请求投票消息。其他follwer节点会返回给...
2019-02-13 15:21:26
598
原创 PBFT共识算法
一、拜占庭将军问题古代,拜占庭的各地的将军去打仗,比如有10个,必须相互通信,达成共识才能一起出发,否则战役失败。问题1、有个将军会叛变,在有将军叛变的情况下,如何达成共识。问题2、互相通信的信道必须是安全的,在不安全的信道中通讯,达成共识很困难的。已经证明:在背叛者为f,将军总数>3f时,可达成共识。3f+1<=n---->(n-1)/3容错节点:应为硬件或...
2019-02-13 12:17:20
6221
1
原创 并发编程实战-第3章
3.4不可变性不可变对象,对象创建后,其状态就不可改变,状态指,成员变量的值。满足以下条件的对象才是不可变对象:1、对象的所有成员对象都是final2、对象被正确的创建3.4.1、对象的域(成员变量)尽量声明为final,会减少对象的可变状态。除非需要可变,否则所有域(成员变量)都声明为final,为好的编程习惯。3.4.2、用volatile来发布不可变对象3.5...
2019-02-13 11:02:51
101
原创 并发编程实战笔记-第2章
1、无状态的对象一定是线程安全的。2、不恰当的执行时序,出现不正确的结果,定义为竞态条件。3、单状态变量,使用原子类型4、多状态变量交互,使用synchronzied,包括2部分,1、要锁定的对象 2、要保护的代码块。被保护的代码块,操作可看成一个事务。5、内置锁是可重入的,也就是自己去获取自己已经获得了锁的锁的时候,可以获得。6、一种加锁约定:将所有可变对象都放入对象内部...
2019-02-12 15:15:37
110
原创 TCP服务端标志动作
1、打开tcp_nodeploy socket选项2、关闭SO_REUSEADDR3、忽略sig_pipe信号4、标志关闭TCP动作,shutdown(write)->read为0->close()
2019-01-24 18:56:07
206
原创 CAP理论
C是一致性A是可用性P是分区容忍性。当分区发生时,系统仍然能提高服务。P理论上一定会发生的。因为网络时无法保证100%不出问题的。所以理论上只有CP、AP两种选择。1、CAP是理论,是忽略时延的。同机房几毫秒,异地机房几十毫秒。理论上无法做到,单一金额的分布式部署。但通过用户ID的hash分区,可实现整个系统的分布式部署。这样当发生故障,只是部分节点发生故障,提供系统可用性...
2019-01-14 13:52:46
192
原创 笔记:hadoop的双NN机制
双namenode保证高可用,随之而来带来很多问题:1、2台namenode之间的数据同步问题,edits的数据。如果实时的同步,会造成client访问缓慢。如果批同步,会造成很多数据丢失。采取将数据edits抽取出来的方式。2、抽取出edits到第3方,也得考虑第3方的高可用,用edits集群的方式解决。底层依赖zookeeper。qjournal进程。3、2台namen...
2019-01-13 12:05:13
481
原创 hadoop安装
基本安装https://www.cnblogs.com/gyouxu/p/4183417.html问题解决https://blog.csdn.net/coffeeandice/article/details/78879151
2019-01-10 17:43:45
75
原创 netstat零碎命令
1、netstat -nat网络状态显示专题,n直接显示IP,而不是域名。a显示所有网络状态。t是TCP,u是UDP。2、netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 显示各种状态的数量CLOSE_WAIT 1ESTABLISHED 3 ...
2019-01-08 14:39:00
118
原创 stellar零碎记录
1、stellar每个ledger最大多少个TX的字段const uint32_t LedgerManager::GENESIS_LEDGER_MAX_TX_SIZE = 10000;
2019-01-08 10:42:30
192
原创 npm使用
如果你的系统还不支持 Node.js 及 NPM 可以参考我们的 Node.js 教程。我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本教程使用 webpack。国内使用 npm 速度很慢,你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:$ npm install -g cnpm --...
2018-12-20 09:27:03
105
原创 pgsql使用
sudo apt-get install postgresql-9.6 sudo -u postgres psql登录命令行默认路径: /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf...
2018-12-19 17:22:16
1099
原创 git常用命令
# 添加当前目录的所有文件到暂存区git add .# 提交暂存区到仓库区git commit -m '注释信息'# 提交工作区自上次commit之后的变化,不用经过暂存区,直接到仓库区git commit -a -m '注释信息'# 提交时显示所有diff信息git commit -v# 新建一个分支,指向某个taggit checkout -b [branch] [...
2018-08-27 11:17:52
134
原创 序列化、字节对齐、字节序(C++)
记录下自己对这3个问题的理解,C++编程方式下字节对齐,存在的意义:是因为C++下,写网络协议的时候,经常写成struct或类class,类似于下边struct _arp{ unsigned short arp_hrd; unsigned short arp_pro; unsigned char
2017-08-13 17:41:45
1213
转载 C++中TCP/IP按约定报文协议接收数据完成拼包
有段时间没有更新博客了,近来比较忙,没有顾上写博客。终于完成了一个大任务,有时间回顾一下这段时间的成果。这篇博客,先介绍和总结一下很久前的工作。TCP/IP接收数据拼包。由于时间太长很多东西记不清楚了,请见谅。任务是某设备通过WIFI以TCP/IP的协议发送图像数据,数据按照规定的报文协议接收数据。报文内容分为控制域(8个字节)与数据域(不定长),报文的启动字符为0628H占两个字
2017-07-11 22:04:38
4611
1
转载 socket 封包和解包
对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了. 一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间是没有分界线的.但一般通讯程序开发是需要定义一个个相互独立的数
2017-06-24 10:34:10
1035
转载 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
recv:阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:非阻塞模式下返回 值 只是阻塞模式下recv会阻塞着接收数据,非阻塞模式下如果没有数据会返回,不会阻塞着读,因此需要 循环读取。write:阻塞与非阻塞write返回值没有区分,都是 0发送数据大小,特别:非阻塞模式下返回值 只是阻塞模式下write会阻塞着发送数据,非阻塞模式下如果暂时无法发送
2017-06-23 22:58:50
1596
原创 简单工厂模式&&工厂模式&&抽象工厂模式
在实际项目中,简单工厂模式是我们使用的最多的设计模式之一,简单工厂模式在应对需求变更的过程中也起到了很大的作用。 使用情景: 再不确定会有多少个处理操作时应该考虑使用简单工厂模式,如针对同样的接收到的数据,处理的逻辑可能会不同,可能以后还会增加新的操作。 案例: 例如如果实现计算器的功能时,对于同样的输入数据,可能执行加、减、乘、除,甚至其他的功能。因此可以抽象出一
2017-02-22 21:58:31
246
原创 观察者模式
/** * 观察者模式应用场景实例 * * 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。 * * 场景描述: * 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如: * 1、购票后记录文本日志 * 2、购票后记录数据库日志 * 3、购票后发送短信 * 4、购票送抵扣卷、兑换卷、
2017-02-20 21:20:24
153
原创 观察者模式--C++
以下内容都是从其他文章里摘抄的。/** * 观察者模式应用场景实例 * * 免责声明:本文只是以哈票网举例,示例中并未涉及哈票网任何业务代码,全部原创,如有雷同,纯属巧合。 * * 场景描述: * 哈票以购票为核心业务(此模式不限于该业务),但围绕购票会产生不同的其他逻辑,如: * 1、购票后记录文本日志 * 2、购票后记录数据库日志 * 3、购票后发送
2017-02-20 21:14:46
297
转载 TC入门
转自:http://blog.csdn.net/skai_csdn/article/details/6167334 最近找我问TC的朋友越来越多,于是就想写一个入门教程放在这里。对我来说,TC目前是总收入的一个重要组成部分,虽然不如工资多,但是性价比极高。由于我基本只干Design/Development,因此本文只介绍这两种,对于有志于Architecture/Assembly乃至Studio的
2016-07-21 10:20:53
2552
原创 日常用的PHP函数记录
1、str_replace() 把字符串 “Hello 原来子字符串!” 中的字符 “原来” 替换为 “替换的字符串”: 返回值: 返回带有替换值的字符串或数组。<?php echo str_replace("原来子字符串","替换的字符串","总的字符串 原来子字符串!");?>
2016-07-20 22:36:09
200
转载 正则表达式(三)
注释小括号的另一种用途是通过语法(?#comment)来包含注释。例如:2[0-4]\d(?#200-249)|250-5|[01]?\d\d?(?#0-199)。要包含注释的话,最好是启用“忽略模式里的空白符”选项,这样在编写表达式时能任意的添加空格,Tab,换行,而实际使用时这些都将被忽 略。启用这个选项后,在#后面到这一行结束的所有文本都将被当成注释忽略掉。例如,我们可以前面的一个表达式写成这
2016-07-18 20:52:26
277
转载 正则表达式(二)
分组我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复多个字符又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达 式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。(\d{1,3}.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹 配1到3位的数字,(\d{1,
2016-07-18 20:46:44
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人