我的Blog

万物皆虚,万事皆允

调度器的内部结构

Heap heap用于实现调度队列中的 activeQ 和 unschedulableQ 。heap的实现主要依赖结构题 data。 data data 是一个内部结构体,它实现了标准的堆接口并将数据保存在堆中。 type KeyFunc func(obj interface{}) (string, error) type heapItem struct { obj inte...

调度器的内部结构

internal

internal internal 表示调度器在进行调度操作时所需的内部结构,由多个队列实现。调度器在对 Pod 进行调度时,会从队列中取出“合适”的 Pod ,通过进行一系列的操作,最终将 Pod 调度到合适的节点。 基本概念 activeQ:包含当前等待调度 Pod 的队列 unschedulableQ:包含已经尝试过并被确定为不可调度的 Pod podBackoffQ:已完成...

认证方式

证书认证

证书认证 使用k8s进行操作时,最常用的认证方式是证书认证和token认证,其中证书认证主要依赖于 go 中 x509 包内的相关验证方法。这里分析证书认证。后续会增加token认证的分析 证书 证书池 CertPool:证书的集合。其中 byName 的 key 是 RawSubject ,也就是对DER编码证书的 subject 字段进行加密;value 是 lazyCert...

fabric中的bccsp

BCCSP(blockchain crypto service provider):为fabric项目提供各种加密技术,签名技术,MSP服务模块中就使用到了BCCSP。 基本架构 BCCSP的基本架构如下所示: 从大致的层次上划分,可分为三层。 BCCSP层 从包结构的角度来看,这一层指的是package bccsp。 从文件的角度来看,主要包括bccsp/目录下的*...

数字证书

X.509数字证书

对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。理论上任何人可以公开获取到对方的公钥。然而这个公钥有没有可能是伪造的呢?传输过程中有没有可能被篡改掉呢?一旦公钥自身出了问题,则整个建立在其上的安全体系的安全性将不复存在。 数字证书机制正是为了解决这个问题,它就像日常生活中的一个证书一样,可以证明所记录信息的合法性。比如证明某个公钥是某个实体(如组织或个人)的,并且确保一旦内容...

Hash

散列函数

1. Hash算法与数字摘要 1. Hash定义 定义如下:h = H(m) 其中: m :任意长度消息(不同算法实现,长度限制不同,有的哈希函数(SHA-3)不限制消息长度,有的限制(SHA-2),但即使有限制其长度也非常大,可以认为是任意长度消息) H:哈希函数 h:固定长度的哈希值 Hash(哈希或散列)算法是非常基础也非常重要的计算机算法,它能将任意长度的二进...

Merkle树

Merkle(默克尔)树,又叫哈希树,是一种典型的二叉树结构,由一个根节点、一组中间节点和一组叶节点组成。 区块的组成: 一个区块是由区块头和区块体组成。区块体则是所有 transaction 的集合,区块头由六个部分组成: 上一个区块头的 Hash,previous hash。由上个区块的 block header 进行 double sha256 生成。32 bytes。 ...

docker的理解

docker结构及命令的理解

要解决的问题 Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其他机器中。 与虚拟机的比较 容器技术有很多种,Docker是目前最流行的一种。服务器虚拟化解决的核心问题是资源调配,而容器解决的核心问题是应用开...

Go语言的接口

1.接口即约定 接口是一种抽象类型,不暴露所含数据的布局或者内部结构和基本操作,只提供一些方法而已。 例子:fmt.Printf和fmt.Sprintf都封装了fmt.Fprintf func Printf(format string, a ...interface{}) (n int, err error) { return Fprintf(os.Stdout, format, a...

fabric整理

论文的翻译

Introduction 区块链可以被定义为用于记录交易的不可变账本,维护在相互不信任的节点的分布式网络中。每个节点都维护着账本的副本。节点执行共识协议来验证交易,将它们分组进区块,并根据区块信息生成哈希链。此过程通过对交易进行排序来形成账本,这对于保证连续性和一致性是十分必要的。区块链技术已经从比特币的名号中脱颖而出,并被广泛认为是在数字世界中进行可信交易的有前途的技术。 在一个公有链...