自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

说到做到_我的忍道

在小的力量,凝聚在一起也会不一样

  • 博客(79)
  • 收藏
  • 关注

原创 高并发系统设计

1. 基础篇通用设计方法横向扩展:组合多台性能机器组成一个分布式集群来共同抵御并发流量的冲击 纵向扩展:不断提升CPU性能 缓存:磁盘寻道ms级,CPU指令和内存寻址在纳秒级, 异步架构分层什么是分层架构整体系统分为 N 个层次 例如:MVC、OSI网络模型、TCP/IP协议、Linux文件系统分层的好处简化系统,让不同的人专注做某一层次的事情 分层可以提升代码复用 分层更容易做横向的扩展如何做系统分层定义清楚每一层次的边界是什么 层次之间一定是相邻层相互依赖,数据的流

2020-11-16 22:46:28 176

原创 区块链:Hyperledger Fabric智能合约(链码)

智能合约区块链2.0 : 以太坊 合约协议的数字化代码表达 分布式有限状态机 执行环境安全隔离、不受第三方干扰(EVM、Docker)链码Fabric应用层基石(中间件) 独立的Docker执行环境 背书节点gRPC连接 生命周期管理生命周期打包 安装 实例化 升级 交互交互流程系统链码LSCC(Lifecycle System Chaincode...

2019-05-21 16:43:03 3546

原创 区块链:Hyperledger Fabric账本存储

交易流程交易模拟 -> 读写集(RWSet) 交易排序 交易验证 -> 状态更新1. 交易读写集(RWSet)读集:读取的已提交的状态键值 写集:将要更新的状态键值对 写集:状态键值对删除标记 写集:多次更新以最后一次为准 版本号: 二元组(区块高度、交易编号)交易验证读集版本号 == 世界状态版本号(包括未提交的前序交易)世界状态交易执行后的所有...

2019-05-17 11:25:17 2031 1

原创 区块链:Hyperledger Fabric共识排序

一、共识交易背书(模拟 @Endorser) 交易排序(排序 @Orderer) 交易验证(验证 @Committer)二、排序节点功能1. 交易排序目的:保证系统交易顺序的一致性 solo: 单节点排序, 所见即所得 kafka: 外置消息队列保证一致性2. 区块分发中间状态区块 有效交易&无效交易3. 多通道三、fabric目录结构bc...

2019-05-05 11:42:24 1581

原创 并行计算(一):GPU与CPU比较以及并行计算初步学习

一、GPU与CPU结构上的对比Multicore machines and hyper-threading technology have enabled scientists, engineers, and financial analysts to speed up computationally intensive applications in a variety of discipl...

2019-05-05 11:11:33 6039

原创 区块链:Hyperledger Fabric系统架构

一、系统架构官方图二、网络拓扑客户端(应用程序/SDK/命令行工具) Peer(Anchor 组节点/Endorser背书节点/Committer记账节点) Orderer 排序节点 CA( 可选 )三、交易流程应用程序:1. 提交交易提案背书节点:2. 模拟执行交易提案 3. 返回模拟执行结果应用程序:4. 提交交易(...

2019-05-02 22:08:11 356

原创 区块链:Hyperledger Fabric-sample入门

一、first-network的目录其中 .env 是一些环境变量,base是docker-compose的公共服务,byfn.sh是启动脚本,configtx.yaml和crypto-config.yaml是根据两个配置文件生成相应的脚本,docker-compose用于启动网络,scripts存放测试脚本二、生成first-network配置文件首先使用 ./byfn.sh...

2019-05-02 20:01:51 623

原创 区块链:Hyperledger Fabric环境配置及fabric-sample测试运行

环境准备安装go1.11 以及以上版本 安装docker 17.06.2-ce 以及以上版本 安装docker-compose1.14.0 以及以上版本 git 拉下 fabric-sample 项目 下载docker image镜像具体操作:GO安装下载压缩包无法翻墙 可以去这个网站https://studygolang.com/dlcd ~...

2019-04-21 18:03:56 1549

原创 Java IO

一、概览Java的IO大概分为以下几类:磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader和Writer 对象操作:Serializable 网络操作:Socket 新的输入/输出:NIO二、磁盘操作File 类可以用于表示文件和目录的信息,但是它不表示文件的内容。递归地列出一个目录下所有文件:public...

2019-01-24 11:28:58 1129

原创 Java 虚拟机

一、运行时数据区域程序计数器记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。Java 虚拟机栈每个Java方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在Java虚拟机栈中入栈和出栈的过程。可以通过 -Xss 这个虚拟机参数来指定每个线程的Java虚拟机栈内存大小:...

2019-01-18 13:59:42 1055

原创 Java 并发

一、线程状态转换新建(New)创建后尚未启动。可运行(Runnable)可能正在运行,也可能正在等待CPU时间片。包含了操作系统线程状态中的Running和Ready。阻塞(Blocking)等待获取一个排他锁,如果其线程释放了锁就会结束此状态。无限期等待(Waiting)等待其他线程显式地唤醒,否则不会被分配CPU时间片。限期等待(Timed Wa...

2019-01-07 23:18:14 1052

原创 Java 容器

一、概览Collection1. SetTreeSet: 基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如HashSet, HashSet查找的时间复杂度为O(1), TreeSet则为O(logN)。HashSet: 基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用Iterator遍历HashSet得...

2019-01-01 22:07:37 1063

原创 Java 基础

一、数据类型1. 包装类型boolean/1 byte/8char/16short/16int/32float/32long/64double/64装箱与拆箱Integer x =2 // 装箱int y =2;//拆箱2. 缓存池new Integer(123)与Integer.valueOf(123)的区别在于:new Integer...

2018-12-30 23:07:04 1048

原创 区块链技术(二)Go语言——数组篇

/** @Author: mrtao* @Date: 2018-08-14 14:48:25* @Last Modified by: mrtao* @Last Modified time: 2018-08-14 15:55:51 */package mainimport "fmt"func main() { // 指针 var p *int a := 10...

2018-08-14 15:58:25 192

原创 区块链技术(二)Go语言——变量篇

/** @Author: mrtao* @Date: 2018-08-11 10:56:38* @Last Modified by: mrtao* @Last Modified time: 2018-08-12 11:04:04 */package mainimport "fmt"func main() { var a int a = 20 fmt.Prin...

2018-08-13 14:52:45 605

原创 区块链技术(一):Truffle开发入门

以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只搭建环境,运行第一个区块链程序(Dapp)。安装truffle$ npm install -g truffle需要安装Ethereum客户端,来支持JSON RPC API调用 开发环境...

2018-08-09 09:08:12 311

原创 区块链入门笔记(五) —— 加密货币博弈论

一、市场结构1. 完美比赛完美的竞争是一个市场,任何人都可以轻松进入市场,个别卖家对产品的价格没有任何影响力。想想芒果。任何人都可以轻松进入市场,所有人都必须做的就是种植芒果。另外,他们不能心甘情愿地改变芒果的价格。如果一个人以10美元的价格出售芒果,那么买家只需从以5美元出售芒果的人那里购买。2. 垄断垄断是完全竞争的对立面。这是一个由一家公司主导的市场,进入门槛太高,没有其他人可以进入。戴比尔...

2018-07-16 12:09:03 1075

原创 区块链入门笔记(四)—— 密码学

密码学密码学是研究编制密码和破译密码的技术科学。密码学分为对称密码和哈希密码。一、对称密码        对称密码体系中,相同的密码用来加密和解密报文。加密和解密过程如下:M表示明文K表示秘钥C表示密文E表示加密函数D表示解密函数对称密码又包含分组密码和序列密码(一)分组密码分组密码以一个数据块为单位进行加密,将明文消息编码表示后的数字序列,划分成长度为n的组,每组分别在密钥的控制下变换成等长的输...

2018-07-10 21:44:12 853

原创 LeetCode 696. Count Binary Substrings 思路解析

Give a string s, count the number of non-empty (contiguous) substrings that have the same number of 0's and 1's, and all the 0's and all the 1's in these substrings are grouped consecutively.Substring...

2018-07-09 18:40:44 189

原创 LeetCode 693. Binary Number with Alternating Bits 自我反思

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.Example 1:Input: 5Output: TrueExplanation:The binary representation o...

2018-07-01 15:44:29 153

原创 LeetCode 136. Single Number 自我反思

Given a non-empty array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using ...

2018-07-01 11:41:15 151

原创 LeetCode 496. Next Greater Element I 自我反思

You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1's elements in the corresponding places of nums2.Th...

2018-06-30 17:44:08 149

原创 LeetCode 669. Trim a Binary Search Tree 自我反思

Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that all its elements lies in [L, R] (R >= L). You might need to change the root of the tree, so the re...

2018-06-30 15:16:19 129

原创 LeetCode 617. Merge Two Binary Trees 自我反思

Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.You need to merge them into a new binary tree. ...

2018-06-28 20:26:09 117

原创 区块链入门笔记(二)——区块链是什么?

一、区块链解决的问题拜占庭将军问题故事大概是这么说的:拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那...

2018-05-15 20:52:07 502

原创 基于Scikit-learn实现回归模型——房价预测

一、收集房屋数据集二、导入房屋数据集import pandas as pddf = pd.read_csv('house_data.csv')三、可视化房屋数据集特征import matplotlib.pyplot as pltimport seaborn as snssns.set(context = 'notebook')cols = ['MEDV','LSTAT', 'AGE', '...

2018-03-24 11:34:30 3061

原创 阿里云学生版轻量服务器使用教程与LAMP环境配置

一、服务器购买与使用登陆阿里云官网,使用淘宝账号登陆,完成学生验证。前往云翼计划,购买轻量级服务器,选择系统镜像CentOS 或 Ubuntu。我选择了CentOS,偏向于个人开发测试。购买完成后,返回首页,点击控制台。从产品与服务中找到轻量应用服务器。点击进入你的服务器控制页面。然后完成重制密码和记录IP。二、LAMP 环境搭建(Linux环境)打开ter

2018-01-29 00:18:50 7966 3

原创 TOJ 3271 Deque Sort

题目:A "deque" is a data structure which allows constant time insertion and removal at both the front and back ends.In this problem, you will be given a list of numbers:A0 A1 A2 ... AN-1and aske

2017-11-30 22:44:28 329 1

原创 TOJ Code the Tree AC 代码 以及题解

Code the TreeTime Limit: 1.0 Seconds   Memory Limit: 65536KTotal Runs: 329   Accepted Runs: 101A tree (i.e. a connected graph without cycles) with vertices numbered by the integers 1,

2017-10-26 11:02:44 380

原创 JAVA特殊符号--移位符号

>>表示带符号右移位>>>表示无符号右移但是没有

2017-08-23 23:31:03 1042

原创 C/C++ 多文件程序结构

声明与定义首先从声明和定义说起。 声明是数据对象的和函数的描述。声明的作用就是让编译器知道实体的名字,以及其数据类型或函数签名。如: external int x; //变量声明 void fun(); //函数声明 class A; //类声明定义则是实体本身,代表着实体在一个作用域的唯一描述。 如: int x; //变量定义 void fun()

2017-08-18 13:13:04 3490

原创 Python 进阶特殊方法

任务斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。参考代码:class Fib(object): def __init__(self, num):

2017-08-17 11:24:52 317

原创 python中匿名函数

python中匿名函数高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1

2017-07-14 10:27:50 307

原创 Python 高阶函数之 map()、reduce()、filter()

python中map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]如果希望把list的每个元素都作平方,就可以用map()函数:因此,我们只需要传入

2017-07-13 19:12:11 245

原创 Python 切片

Python提供了切片(Slice)操作符['Adam', 'Lisa', 'Bart', 'Paul']取前3个元素,用一行代码就可以完成切片:>>> L[0:3]['Adam', 'Lisa', 'Bart']L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。如果第一个索引是0,还可以省略:>>

2017-07-13 11:21:02 345

原创 LeetCode 461. Hamming Distance 知识点复习之位运算

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, calculate the Hamming distance.Note:0 ≤ x,

2017-07-12 21:08:57 251

原创 C++ 相对 C 的新特性

一、1. 新的数据类型C没有逻辑类型,非0为真,0为假C++ 有逻辑类型,true , false2.新的初始化方法C 初始化只有复制初始化 int  x = 100;C++ 初始化不仅有复制初始化,还有直接初始化 ,int x (100);3.随用随定义C语言要把所有的变量定义写在函数体最前面C++ 随用随定义

2017-07-07 15:44:19 516

原创 正则表达式的基本语法

PCRE库函数中,正则匹配模式使用分隔符与元字符组成,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~),例如:/foo bar/#^[^0-9]$#~php~如果模式中包含分隔符,则分隔符需要使用反斜杠(\)进行转义。/http:\/\//如果模式中包含较多的分割字符,建议更换其他的字符作为分隔符,也

2017-03-18 10:56:21 460

原创 PHP字符串之单引号和双引号的区别

在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" "。但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"Hello World'为非法的字符串定义。单引号和双引号到底有啥区别呢?PHP允许我们在双引号串中直接包含字串变量。而单引号串中的内容总被认为是普通字符。比如:$str='hello';ec

2017-03-17 16:23:24 524

原创 POJ题目分类

初期: 一.基本算法:      (1)枚举.(poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.      (4)递推.      (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法:

2016-08-29 19:28:32 401

空空如也

空空如也

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

TA关注的人

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