自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (5)
  • 收藏
  • 关注

原创 解决 go mod 需要引用github的私有项目问题

export GOPRIVATE=“github.com/balabala”github.com/balabala 是你的个人账户所在地址

2020-11-10 09:55:37 1386

原创 docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such

在当前镜像的基础上安装 libltdl7 即可解决问题RUN apt-get update && apt-get install -y libltdl7

2020-10-20 16:47:27 4132

原创 centos ip 没有显示

进入 cd /etc/sysconfig/network-scripts,编辑网卡设置,我的网卡默认是ifcfg-ens33(有的网卡默认是ifcfg-eth0)执行 vi ifcfg-ens33将onboot=no,改为onboot=yes即可。然后重启网卡,service network restart或者重启主机reboot。...

2020-09-27 11:38:02 216

原创 lotus - 深入理解时空证明的 golang 实现部分(PoSt)

lotus - 深入理解时空证明的 golang 实现部分(PoSt)参考文章:https://www.chainnews.com/articles/836343087401.htmlotus 的时空证明(PoSt)在两个地方会被调用该算法:Winning PoSt 和 Window PoSt。Winning PoSt 是矿工在出块时对已经提交的扇区进行证明,证明扇区保存的数据依然存在。Window PoSt 是矿工在对应的周期内对已经提交的扇区进行证明,证明扇区保存的数据依然存在。// Bala

2020-06-13 20:37:04 4269

原创 /usr/bin/xauth: file /home/name/.Xauthority does not exist

使用以下命令即可:rm -rf .Xauthority-*

2020-05-08 18:52:02 1602

原创 基于 golang 的实现简单的 RPC 版 Watch 功能

本文主要参考《Go 语言高级编程》一书!在很多系统中都提供了 Watch 监视功能的接口,当系统满足某种条件时 Watch 方法返回监控的结果。在这里我们可以尝试通过 RPC 框架实现一个基本的 Watch 功能。因为 RPC client.send 方法是线程安全的,我们可以通过在不同的 Goroutine 中同时并发阻塞调用 RPC 方法,通过在一个独立的 Goroutine 中调用 Wat...

2020-04-19 21:35:45 1230

原创 基于 golang 的实现简单的发布订阅模型

本文主要参考《Go 语言高级编程》一书!发布订阅(publish-and-subscribe)模型通常被简写为 pub/sub 模型。在这个模型中,消息生产者成为发布者(publisher),而消息消费者则成为订阅者(subscriber),生产者和消费者是 M:N 的关系。在传统生产者和消费者模型中,是将消息发送到一个队列中,而发布订阅模型则是将消息发布给一个主题。// Package pu...

2020-04-19 21:01:53 1538

原创 Redis 常用命令

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。1 键值相关命令1.1 keys返回满足给定 pattern 的所有 key。keys *keys key*1.2 exists判断一个 key 是否存在,存在返回 1,否则返回 0。exists key1.3 del删除一个 key。del key1.4 expire设置一个 key 的过期时间...

2020-04-07 12:15:08 431

原创 Redis 数据类型及操作之 sorted sets 类型

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。sorted sets 类型及操作1.1 zadd向 zset 中添加元素 member,score 用于排序。如果改元素已存在,则只更新 score 值。zadd myzset 10 member1.2 zrange返回 zset 中的所有元素,参数 withscore 表示也返回 score 信息,并按照 sco...

2020-04-07 10:57:36 316

原创 Redis 数据类型及操作之 sets 类型

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。sets 类型及操作1.1 sadd向名称为 key 的 set 中添加元素。sadd myset value1.2 srem删除名称为 key 的 set 中的给定元素。srem myset value1.3 spop随机返回并删除名称为 key 的 set 中一个元素。spop myset1.4 s...

2020-04-07 10:17:03 124

原创 Redis 数据类型及操作之 lists 类型

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。lists 类型及操作lpush再 key 对应 list 的头部添加字符串元素。lpush mylist valuerpush在 key 对应 list 的尾部添加字符串元素。rpush mylist valuelinsert在 key 对应 list 的特定位置之前或之后添加字符串元素。linsert ...

2020-04-06 21:36:22 150

原创 Redis 数据类型及操作之 hashes 类型

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。hashes 类型及操作1.1 hset设置 hash field 为指定值,如果 key 不存在,则先创建。hset myhash field value1.2 hsetnx设置 hash field 为指定值,如果 key 不存在,则先创建。如果 field 已经存在,则不会成功,返回 0.hsetnx myh...

2020-04-06 19:34:33 134

原创 Redis 数据类型及操作之 strings 类型

本文主要参考红丸出品的《Redis实战》,稳定版本为 2.2.12。string 类型及操作1.1 set设置 key 对应的值为 string 类型的 value。set key value1.2 setnx设置 key 对应的值为 string 类型的 value,如果 key 已经存在,那么不会成功,即该命令仅为添加操作。setnx key value1.3 setex...

2020-04-06 12:07:48 153

原创 解决本地从 github上传或下载代码时每次都需要输入用户名和密码

第一步,在本地执行如下命令git config --global credential.helper store第二步,在执行上传或下载时,输入用户名和密码即可,以后就不用输了

2020-02-27 11:35:30 4099

原创 解决登陆 Xshell 出现 ' -bash-4.2 ' 而不会 user@localhost 问题

现象:原因:丢失 HOME 目录下的必备的环境变量文件,如下.bashrc.bash_profile解决办法:从主目录文件 /etc/skel/ 重新拷贝一份即可cp /etc/skel/.bashrc /home/user/cp /etc/skel/.bash_profile /home/user/退出重新登陆即可生效...

2020-02-25 09:23:55 738

原创 搭建 Harbor 私有镜像仓库

1.什么是 Harbor ? Harbor 是一个 CNCF 基金会托管的开源的可信的云原生 docker registry 项目,可以用于存储、签名、扫描镜像内容, Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像, 还提供更加高级的安全功能,如用户管理、访问控制和活动审...

2020-02-24 14:33:05 799

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

1.安装 sambasudo apt-get install samba2.创建共享目录或使用已有目录,本教程以 $HOME 目录演示3.修改 samba 配置文件sudo vi /etc/samba/smb.conf在文件最后添加以下内容即可[share]path = /home/$USER(自行替换用户名)public = yeswritable = yes4.创建 ...

2020-01-01 17:08:30 217

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

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

2020-01-01 13:02:13 220

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

描述默认情况下,限制容器通过 suid 或 sgid 位获取附加权限。安全出发点一个进程可以在内核设置 no_new_priv。它支持 fork,clone 和 execve。no_new_priv 确保进程或者其子进程不会通过 suid 或 sgid位获得任何其他特权。这样,很多危险的操作就降低安全风险。在守护进程级别进行设置可确保默认情况下,所有新容器不能获取新的权限。审计方法...

2019-12-17 19:31:16 1434

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

描述避免生产环境中使用实验性功能 Experimental。安全出发点docker 实验性功能现在是一个运行时 docker 守护进程标志,其作为运行时标志传递给 docker 守护进程,激活实验性功能。实验性功能现在虽然比较稳定,但是一些功能可能没有大规模使用,并不能保证 API 的稳定性,所以生产环境不建议使用。审计方法运行下面命令,并确保在 Server 部分将 Experi...

2019-12-17 10:39:25 790

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

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

2019-12-16 10:11:35 631

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

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

2019-12-03 19:29:59 336

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

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

2019-12-02 11:53:48 8948

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

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

2019-11-28 11:38:27 983

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

描述查看 --cgroup-parent 选项允许设置用于所有容器的默认 cgroup parent。建议如果没有特定用例,则应该保留默认值。安全出发点系统管理员可定义容器运行的 cgroup。若系统管理员没有明确定义 cgroup,容器也会在 docker cgroup 下运行。应该监测和确认 cgroup 的使用情况。通过加到与默认不同的 cgroup,导致不合理地共享资源,从而可能...

2019-11-27 20:36:49 1248

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

描述在 Docker 守护进程中启用用户命名空间支持,可对用户进行重新映射。该建议对镜像中没有指定用户是有帮助的。如果在容器镜像中已经定义了非 ' root ' 运行,可以跳过此建议,因为该功能比较新,可能会带来不可预测的问题。安全出发点Docker 守护进程中对 Linux 内核用户命名空间支持为 Docker 主机系统提供了额外的安全性。它允许容器具有独特的用户和组 ID。这些用户...

2019-11-26 19:45:18 505

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

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

2019-11-26 09:46:46 2257 2

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

描述可以让 Docker 守护进程监听特定的 IP 和端口以及除了默认的 Unix 套接字以外的任何其他 Unix 套接字。配置 TLS 身份验证以限制通过 IP 和端口访问 Docker 守护进程。安全出发点默认情况下,Docker 守护进程绑定到非联网的 Unix 套接字,并以 'root' 权限运行。如果将默认的 Docker 守护进程更改为绑定到 TCP端口或任何其他的 Uni...

2019-11-25 18:04:24 800

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

描述不要使用 'aufs' 作为 Docker 实例的存储驱动。安全出发点'aufs' 存储驱动程序是较旧的存储驱动程序。它是基于 Linux 内核的补丁集,不太可能合并到主要的 Linux 内核中。'aufs' 在 Docker 中只是保留了历史遗留支持的,现在主要是使用 'overlay2' 和 'devicemapper' 。而且最重要的是,在许多的使用最新的 Linux 内核的...

2019-11-24 15:19:20 209

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

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

2019-11-24 14:45:33 2348 1

原创 区块链中的共识算法

区块链中的一个核心概念是去中心化,在区块链中没有和传统数据库系统一样的中心数据库,每个节点都是对等的,这样就需要一套算法和机制来保证所有对等节点之间可以有效协作。这套算法和方式称为共识机制。共识机制的存在可以有效保证各个节点之间按照既定的原则共同维护账本。共识机制本质上是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。共识算法在区块链技术出现之前就已经存在,最早出现在分布式...

2019-11-22 16:26:51 1382 6

原创 POW-工作量证明机制

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

2019-11-22 16:25:06 800

原创 POS-股权证明机制

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

2019-11-22 16:18:52 334

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

描述默认情况下,默认网桥上同一主机上的容器之间允许所有网络通信。如果不需要,限制所有的容器间通信,将需要通信的特定容器链接在一起,或者创建自定义网络,并只加入需要与该自定义网络通信的容器。安全出发点默认情况下,默认网桥上同一主机上的所有容器之间启用不受限制的网络通信。因此,每个容器都有可能读取同一主机上容器网络上的所有包,这可能会导致意外和不必要的信息泄露给其他容器。因此,需要限制默认...

2019-11-22 11:20:35 1152

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

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

2019-11-22 09:44:56 1336

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

描述Docker 守护进程需要 'root' 权限。对于添加到 'docker' 组的用户被提供了拥有完整的 'root' 访问权限。安全出发点Docker 允许在 Docker 主机和访客容器之间共享目录,而不会限制容器的访问权限。这意味着可以启动容器并将主机上的 / 目录映射到容器。容器能够不受任何限制地更改主机文件系统。简而言之,这意味着只需作为 'docker' 组的成员即可获得较...

2019-11-21 18:49:54 311

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

描述所有 Docker 容器及其数据和元数据都存储在 /var/lib/docker 目录下。默认情况下,/var/lib/docker 目录将根据可用性挂载在 / 或者 /var 分区下。安全出发点Docker 依赖于 /var/lib/docker 作为默认目录,其存储所有 Docker 相关文件,包括镜像文件等。该目录下可能会被恶意写满,导致 Docker、甚至主机可能无法使用。因此...

2019-11-21 18:09:13 530

原创 PBFT-拜占庭共识算法

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

2019-11-21 17:42:12 535

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

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

2018-08-28 15:34:24 1352

原创 ProtoBuf与gRPC

         ProtoBuf 是一套接口描述语言(Interface Definition Language,IDL),类似于 Apache 的Thrift。相关处理工具主要是 protoc,基于 C++ 语言实现。用户写好 .proto 描述文件,之后便可以使用 protoc 自动编译生成众多计算机语言(C++、Java、Python、C#、Golang 等)的接口代码。这些代码可以支持 ...

2018-08-25 21:49:00 1409

基于JAVA语言开发失物招领系统的设计和实现

整体使用MVC模式、前端使用bootstrap框架、使用 Java 技术开发 B/S 结构的应用,其中包含了一系列相关组件和技术,如Servlet 组件(请求、响应、会话、过滤器)、JSP 组件(内置对象、指令、标准动作、EL)、采用Log4j组件收集日志,密码MD5加密、验证码、防止用户重复登录、用户角色管理(管理员与普通用户)。

2018-07-12

基于.NET开发的家庭日常消费管理系统

基于.NET开发的家庭日常消费管理系统,代码和文档皆有。

2018-07-11

基于JAVA开发的二叉树课程设计与实现

基于JAVA开发的二叉树课程设计与实现,程序代码和文档都有。

2018-07-10

基于beego开发的失物招领网站

失物招领平台开发,包括了失物平台,招领平台,积分商城等平台,是一个功能完整的系统平台。

2018-07-10

基于go语言开发的2048游戏

传统版:有16个格子,初始时会有两个格子上安放了两个数字2,每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方随即出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。 直接下载,点击exe文件即可运行。

2018-07-10

空空如也

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

TA关注的人

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