自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 简单易用的Windows与Linux共享文件之Samba部署

1.安装 samba sudo apt-get install samba 2.创建共享目录或使用已有目录,本教程以 $HOME 目录演示 3.修改 samba 配置文件 sudo vi /etc/samba/smb.conf 在文件最后添加以下内容即可 [share] path = /hom...

2020-01-01 17:08:30

阅读数 11

评论数 0

原创 Ubuntu 首次设置 root 用户密码

设置 root 用户密码 sudo passwd [sudo] password for xxx: 输入当前用户密码 Enter new UNIX password: 输入 root 用户密码 Retype new UNIX password: 再次输入 root 用户密码 登陆 root ...

2020-01-01 13:02:13

阅读数 6

评论数 0

原创 Docker 守护进程配置之限制容器获取新的权限

描述 默认情况下,限制容器通过 suid 或 sgid 位获取附加权限。 安全出发点 一个进程可以在内核设置 no_new_priv。它支持 fork,clone 和 execve。no_new_priv 确保进程或者其子进程不会通过 suid 或 sgid 位获得任何其他特权。这样,很多危险的...

2019-12-17 19:31:16

阅读数 15

评论数 0

原创 Docker 守护进程配置之生产环境中避免实验性功能

描述 避免生产环境中使用实验性功能 Experimental。 安全出发点 docker 实验性功能现在是一个运行时 docker 守护进程标志,其作为运行时标志传递给 docker 守护进程,激活实验性功能。实验性功能现在 虽然比较稳定,但是一些功能可能没有大规模使用,并不能保证 API 的稳...

2019-12-17 10:39:25

阅读数 27

评论数 0

原创 Docker 守护进程配置之应用程序守护进程范围的自定义 seccomp 配置文件

描述 如果需要,你可以选择在守护进程级别自定义 seccomp 配置文件,并覆盖 Docker 的默认 seccomp 配置文件。 安全出发点 大量系统调用暴露于每个用户级进程,其中许多系统调用在整个生命周期中都未被使用。大多数应用程序不需要所有的系统调用,因此可以通过减 少可用的系统调用来增加...

2019-12-16 10:11:35

阅读数 3

评论数 0

原创 Docker 守护进程配置之配置集中和远程日志记录

描述 Docker 现在支持各种日志驱动程序。存储日志的最佳方式是支持集中式和远程日志记录。 安全出发点 集中式和远程日志确保所有重要的日志记录都是安全的,以满足容灾的要求。Docker 支持多种类型的日志驱动程序,可根据自身情况选取。 审计方法 可以运行 docker info 并确认日志记...

2019-12-03 19:29:59

阅读数 14

评论数 0

原创 使用 protoc 编译 .proto 文件时使用的 -I 的参数是代表什么

首先,我们可以在终端运行以下命令 protoc --help 我们发现其实参数 -IPATH 就是代表 -I,所有这个参数就是代表: -I(-IPATH)指定要在其中搜索导入(import)的目录。可指定多次,目录将按顺序搜索。如果没有给出,则使用当前工作目录。 如:protoc -I=$GO...

2019-12-02 11:53:48

阅读数 33

评论数 0

原创 Docker 守护进程配置之设置容器的默认空间大小

描述 在某些情况下,可能需要大于 10G 的容器空间,需要仔细选择空间的大小。 安全出发点 守护进程重启时可以增加容器空间的大小。用户可以通过设置默认容器空间值来进行扩大,但不允许缩小。设立该值的时候需要谨慎,防止设置不 当导致主机资源耗尽的情况。 审计方法 ps -ef | grep doc...

2019-11-28 11:38:27

阅读数 17

评论数 0

原创 Docker 守护进程配置之使用默认的 cgroup

描述 查看 --cgroup-parent 选项允许设置用于所有容器的默认 cgroup parent。建议如果没有特定用例,则应该保留默认值。 安全出发点 系统管理员可定义容器运行的 cgroup。若系统管理员没有明确定义 cgroup,容器也会在 docker cgroup 下运行。应该监测...

2019-11-27 20:36:49

阅读数 19

评论数 0

原创 Docker 守护进程配置之启用用户命名空间

描述 在 Docker 守护进程中启用用户命名空间支持,可对用户进行重新映射。该建议对镜像中没有指定用户是有帮助的。如果在容器镜像中已经定义 了非 ' root ' 运行,可以跳过此建议,因为该功能比较新,可能会带来不可预测的问题。 安全出发点 Docker 守护进程中对 L...

2019-11-26 19:45:18

阅读数 13

评论数 0

原创 Docker 守护进程配置之配置合适的 ulimit

描述 需要根据环境设置默认的 ulimit 选项。 安全出发点 ulimit 提供对 shell 可用资源的控制。设置系统资源控制可以防止资源耗尽带来的问题,如 fork 炸弹。有时候合法的用户和进程也可能过 度使用系统资源,导致系统资源耗尽。 为 Docker 守护进程设置默认的 ulimit...

2019-11-26 09:46:46

阅读数 17

评论数 0

原创 Docker 守护进程配置之 TLS 身份认证

描述 可以让 Docker 守护进程监听特定的 IP 和端口以及除了默认的 Unix 套接字以外的任何其他 Unix 套接字。配置 TLS 身份验证以限制通 过 IP 和端口访问 Docker 守护进程。 安全出发点 默认情况下,Docker 守护进程绑定到非联网的 Unix 套接字,并以 &#...

2019-11-25 18:04:24

阅读数 19

评论数 0

原创 Docker 守护进程配置之不使用 aufs 存储驱动程序

描述 不要使用 'aufs' 作为 Docker 实例的存储驱动。 安全出发点 'aufs' 存储驱动程序是较旧的存储驱动程序。它是基于 Linux 内核的补丁集,不太可能合并到主要的 Linux 内核中 。'aufs' 在 Docke...

2019-11-24 15:19:20

阅读数 2

评论数 0

原创 Docker 守护进程配置之允许 Docker 更改 Iptables

描述 Iptables 用于建立、维护和检查 Linux 内核中得 IP 包过滤规则表。建议允许 Docker 守护程序自动更改 Iptables 规则。 安全出发点 如果允许 Docker 守护进程更改 Iptables 的话,Docker 会根据用户为容器选择网络选项的方式自动对 Ipta...

2019-11-24 14:45:33

阅读数 24

评论数 0

原创 区块链中的共识算法

区块链中的一个核心概念是去中心化,在区块链中没有和传统数据库系统一样的中心数据库,每个节点都是对等的,这样就需要一套算法和机制来保证所有对等节点之间可以有效协作。这套算法和方式称为共识机制。共识机制的存在可以有效保证各个节点之间按照既定的原则共同维护账本。共识机制本质上是区块链系统中实现不同节点之...

2019-11-22 16:26:51

阅读数 21

评论数 6

原创 POW-工作量证明机制

工作量证明(Proof Of Work,POW),简单理解就是一份证明,用来确认你做过一定量的工作。检测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。比如现实生活中的毕业证、驾驶证等,也是通过检验结果的方式(通过相关的考试)所取得的证明...

2019-11-22 16:25:06

阅读数 13

评论数 0

原创 POS-股权证明机制

股权证明机制的基本概念是产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例。简单来说POS就是一个根据你持有货币的量和时间给你发利息的一个制度。在POS模式下有一个名词叫币龄,每个币每天产生1币龄。比如你持有100个币,总共持有了30天,那么此时你的币龄就是3000。这个时候如果你发现了...

2019-11-22 16:18:52

阅读数 9

评论数 0

原创 Docker 守护进程配置之限制默认网桥上容器之间的网络流量

描述 默认情况下,默认网桥上同一主机上的容器之间允许所有网络通信。如果不需要,限制所有的容器间通信,将需要通信的 特定容器链接在一起,或者创建自定义网络,并只加入需要与该自定义网络通信的容器。 安全出发点 默认情况下,默认网桥上同一主机上的所有容器之间启用不受限制的网络通信。因此,每个容器都有可...

2019-11-22 11:20:35

阅读数 12

评论数 0

原创 github 合并某个分支上某次提交更改

使用 github 合并分支时,有时候我们仅仅需要合并自己修改的文件,简单的说就是合并另一个分支的某一次提交的更改。此时,我们就可以使用以下命令来进行在当前分支合并某个分支上的提交更改了。 git cherry-pick commit-id 此时,在当前分支上,就合并了在某分支上的 commit...

2019-11-22 09:44:56

阅读数 42

评论数 0

原创 主机安全配置之只有受信任的用户才能控制 Docker 守护进程

描述 Docker 守护进程需要 'root' 权限。对于添加到 'docker' 组的用户被提供了拥有完整的 'root' 访问权限。 安全出发点 Docker 允许在 Docker 主机和访客容器之间共享目录,而不会限制容器的访问权...

2019-11-21 18:49:54

阅读数 10

评论数 0

原创 主机安全配置之为容器创建一个单独分区

描述 所有 Docker 容器及其数据和元数据都存储在 /var/lib/docker 目录下。默认情况下,/var/lib/docker 目录将根据可用性挂载在 / 或者 /var 分区下。 安全出发点 Docker 依赖于 /var/lib/docker 作为默认目录,其存储所有 Docke...

2019-11-21 18:09:13

阅读数 15

评论数 0

原创 PBFT-拜占庭共识算法

PBFT算法是根据拜占庭问题演变而来的拜占庭共识算法。在拜占庭问题被提出后一直有各种共识算法来解决拜占庭问题,但是无论从执行流程的复杂度还是算法效率来说,PBFT是目前公认效率最好的算法。该算法是Miguel Castro(卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的。...

2019-11-21 17:42:12

阅读数 18

评论数 0

转载 以太坊源码情景分析之区块(block)数据同步之主动同步

主动同步   同步入口     主动同步有好几个主要场景 geth刚启动 新peer加入 定时sync     后面两个场景入口都在ProtocolManager.syncer func (pm *ProtocolManager) syncer() {     // Start a...

2018-08-28 15:34:24

阅读数 518

评论数 0

原创 ProtoBuf与gRPC

         ProtoBuf 是一套接口描述语言(Interface Definition Language,IDL),类似于 Apache 的Thrift。相关处理工具主要是 protoc,基于 C++ 语言实现。用户写好 .proto 描述文件,之后便可以使用 protoc 自动编译生成...

2018-08-25 21:49:00

阅读数 818

评论数 0

转载 以太坊源码分析(32)eth-downloader-peer源码分析

queue给downloader提供了调度功能和限流的功能。 通过调用Schedule/ScheduleSkeleton来申请对任务进行调度,然后调用ReserveXXX方法来领取调度完成的任务,并在downloader里面的线程来执行,调用DeliverXXX方法把下载完的数据给queue。 最...

2018-08-19 16:01:34

阅读数 166

评论数 0

转载 以太坊源码分析(31)eth-downloader-peer源码分析

peer模块包含了downloader使用的peer节点,封装了吞吐量,是否空闲,并记录了之前失败的信息。   ## peer          // peerConnection represents an active peer from which hashes and block...

2018-08-19 11:05:15

阅读数 69

评论数 0

转载 以太坊源码分析(22)core-genesis创世区块源码分析

genesis 是创世区块的意思. 一个区块链就是从同一个创世区块开始,通过规则形成的.不同的网络有不同的创世区块, 主网络和测试网路的创世区块是不同的.   这个模块根据传入的genesis的初始值和database,来设置genesis的状态,如果不存在创世区块,那么在database里面...

2018-08-19 10:32:58

阅读数 83

评论数 0

转载 以太坊源码分析(14)P2P分析

#概述 Kademlia(简称Kad)是一种分布式哈希表技术,用于建立p2p网络拓扑结构。   基本原理就是以两个节点ID的异或值作为两节点间的距离d,每个节点都将其他节点的信息存储到称之为K桶的表结构中,该表结构按照d的为1的最高bit位分层(可理解为桶索引),每层中存储最多K个节点信息。...

2018-08-18 20:48:45

阅读数 84

评论数 0

转载 以太坊源码分析(12)交易数据分析

## 交易的数据结构 交易的数据结构定义在core.types.transaction.go中,结构如下: ``` type Transaction struct { data txdata // caches hash atomic.Value size atomic.Value ...

2018-08-18 20:33:59

阅读数 197

评论数 0

转载 以太坊源码分析(10)CMD深入分析

### cmd包分析 #### cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如   ##### geth包下面的:   ``` func init() {     // Initialize the C...

2018-08-18 20:27:26

阅读数 107

评论数 0

转载 以太坊源码分析(8)区块分析

## 区块存储 区块的存储是由leveldb完成的,leveldb的数据是以键值对存储的。在这里保存区块信息时,key一般是与hash相关的,value所保存的数据结构是经过RLP编码的。 在代码中,core/database_util.go中封装了区块存储和读取相关的代码。 在存储区块信息...

2018-08-18 17:55:35

阅读数 177

评论数 0

转载 以太坊源码分析(7)Ethereum 资源分享

# Awesome Ethereum [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github....

2018-08-18 17:35:34

阅读数 194

评论数 0

转载 以太坊源码分析(4)accounts包简介

accounts包实现了以太坊客户端的钱包和账户管理。 账号的数据结构:     typeAccount struct {     Address common.Address `json:"address"` // Ethereum account addressde...

2018-08-18 17:31:00

阅读数 180

评论数 0

转载 以太坊源码分析(1)go-ethereum的设计思路及模块组织形式

go-ethereum的设计思路及模块组织形式 ===================================   以太坊的目标是基于区块链技术打造一个运行智能合约的去中心化平台。   ## 一. 区块链技术 区块链属于一种去中心化的数字记账技术,区块链数据由彼此互不信任的节点...

2018-08-18 17:15:23

阅读数 101

评论数 0

转载 以太坊源码情景分析之区块(block)数据之被动同步

区块数据同步分为被动同步和主动同步 被动同步是指本地节点收到其他节点的一些消息,然后请求区块信息。比如NewBlockHashesMsg 主动同步是指节点主动向其他节点请求区块数据,比如geth刚启动时的syning,以及运行时定时和相邻节点同步 被动同步     被动同步由fetcher...

2018-08-17 11:37:02

阅读数 206

评论数 0

原创 启动Eclipse报Initializing Java Tooling错误解决方法

找到项目所在目录双击Tomcat点击红色部分点击Arguments,并且复制下面红色部分,进入项目文件夹然后将该目录下的  org.eclipse.core.resources.projects 删除,重启 eclipse 即可。...

2018-07-07 19:53:47

阅读数 70

评论数 0

原创 Golang IntToByte 实现

package test01 import ( "bytes" "encoding/binary" "fmt" "os" ) func IntToByte(num int64) []byte...

2018-07-01 16:38:23

阅读数 4460

评论数 2

原创 工厂方法模式

类图代码public abstract class AbstractPay{ public abstract void pay();}public class CashPay extends AbstractPay{ public void pay(){ //现金支付处理代码 }}public ...

2018-06-24 11:20:19

阅读数 46

评论数 0

原创 简单工厂模式

类图代码public abstract class AbstractPay{ public abstract void pay();}public class CashPay extends AbstractPay{ public void pay(){ //现金支付处理代码 }}public ...

2018-06-24 10:37:21

阅读数 56

评论数 0

原创 删除数据(DELETE、TRUNCATE TABLE)

1. DELETE  语句的作用是在指定表或指定视图的基表中删除记录行。用户可以删除位于用户自己模式中的表的记录行,也可以删除在该表上具有 DELETE 权限的表的记录行,并且在删除指定表的记录行时,必须满足该表上的完整性约束条件。其语句格式如下:DELETE  ROM <table...

2018-06-23 09:42:18

阅读数 10708

评论数 0

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