k8s的部署安装
基于Kind部署K8S
kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在本地搭建基于 Kubernetes 的开发/测试环境。
kind的安装,参照:https://kind.sigs.k8s.io/docs/user/quick-start/
kind的基础命令:
创建集群
12kind create cluster # 默认创建名为kind的集群kind create cluster --name kind2 # 创建名为kind2的集群
与集群交互
123kind get clusters #列出kind集群kubectl cluster-info --context kind-kind #与特定集群进行交互
删除集群
12kind delete clusterkind delete cluster --name kind
加载images到集群
1kind load docker-image image-0 image-1 --name kind2
配置集群
1kind c ...
可验证随机函数
可验证随机函数VRF
VRF是一种将输入映射到可验证的伪随机输出的加密方案。
VRF 的目的就是要生成一个真正随机、无法被预测而且还可以被验证的随机数。
在区块链中,被用于随机选择出块节点和验证节点,并提供验证节点的功能。
定义可验证随机函数可以看作是一个随机预言机(Random Oracle),可以通过任意的一个输入,获得一个随机数输出。可验证随机函数比随机预言机多了一个非交互的零知识证明,可以用来证明这个随机数的确是某个人生成的。
随机预言机有两个特征:
对于不同的 Input,Output 的值是随机的,并且均匀分布在值域范围内。
对于相同的 Input,它得到的 Output 一定是相同的。
首先讲一个简单的哈希函数,比如结合了secret的哈希函数:
1result = SHA256(secret,info)
上面的函数,要想得到结果result,需要secret和info;要验证result,也需要secret和info,也就是说需要知道secret才能验证info和result是否对应匹配。
有没有可能在不出示secret的情况下,验证result和info是否对应 ...
隐私计算方法
隐私计算方法零知识证明
零知识证明指:证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
零知识证明系统包括两部分:宣称某一命题为真的示证者(prover)和确认该命题确实为真的验证者(verifier)。证明是通过这两部分之间的交互来执行的,其思想源于交互式证明系统。
零知识证明起源于最小泄漏证明,设P表示掌握某些信息,并希望证实这一事实的实体,设V是证明这一事实的实体。假如某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。不仅如此,如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。
零知识证明的三个性质:
正确性。P无法欺骗V。换言之,若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低。
完备性。V无法欺骗P。若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明。
零知识性。V无法获取任何额外的知识。
实例:
若A为验证者,B为示证者。其中A拥有B的公钥,B如何让A相信自己就是B且不泄露自己的私钥。
B把自己的私钥 ...
Fabric-Sample test-network脚本解析
Fabric-Sample test-network 脚本解析
此脚本将启动一个Hyperledger结构网络,用于测试智能合约和应用程序。
测试网络由两个两个组织。每个组织一个peer节点和一个单节点Raft Orderer服务组成。
用户也可以使用这个脚本创建通道的脚本并且在通道上部署链码。
目录结构test-network 目录12345678910111213141516171819├─addOrg3 #使用本目录下的脚本文件,动态增加一个组织│ ├─docker│ └─fabric-ca│ └─org3├─configtx #存放启动fabric网络的通道配置信息├─docker #存放启动容器的docker-compose模板文件├─organizations #存放生成的证书信息│ ├─cryptogen│ └─fabric-ca│ ├─ordererOrg│ ├─org1│ └─org2├─scripts #存放整个网络启动、管理的脚本│ └─org3-scripts└─system-genesis-block #创 ...
强化学习常见算法总结
强化学习常见算法总结目录针对离散动作的学习方法
基于值
Q-Learning
DQN
SARSA
DQN with experience replay
DQN with Target Network
Double DQN
Deuling Network
Noisy Network
基于策略
Policy Gradient
Reinforce
Actor-Critic
Reinforce with baseline
A2C
针对连续动作空间的学习方法待定
针对多智能体的学习方法待定
基础
机器学习
深度学习
马尔可夫决策过程
MDP强化学习在数学上的理想化形式,在MDP框架之下,可以进行非常精确的理论推导。
贝尔曼方程
表示动态规划问题中相邻状态关系的方程。
蒙特卡洛
模拟(或者经历)一段序列或情节,在序列或情节结束后,根据序列中各个状态的价值,来估计状态价值。
TD算法
模拟(或者经历)一段序列或情节,每行动一步(或者几步),根据新状态的价值,然后估计执行前的状态价值。
(可以认为蒙特卡洛MC方法是最大步数的TD算法)
Q-Learning
基于 TD ...
k8s简记
K8S简记
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。
目录
概念
组织结构
安装
常用命令
K8S配置文件编写
概念Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
Kubernetes 提供如下服务:
服务发现和负载均衡
存储编排
自动部署和回滚
自动完成装箱计算
自我修复
密钥与配置管理
这张图表展示了包含所有相互关联组件的 Kubernetes 集群。
Kubernetes 组件控制平面组件
控制平面的组件对集群做出全局决策(比如调度),以及检测和响应集群事件(例如,当不满足部署的 replicas 字段时,启动新的 pod)。
kube-apiserver
etcd
kube-scheduler
kube-controller-manager
节点控制器
任务控制器
端点控制器
服务帐户和令牌控制器
cloud-controller-m ...
区块链跨链方案分析
区块链跨链技术总结分类:
系统内部跨链
系统间跨链
主要方案:
公证人机制
侧链与中继机制
哈希时间锁定机制
分布式私钥控制技术
较早出现的 BTC-Relay 使用侧链技术来实现区块链数字资产之间的单向跨链。Ripple 提出的跨链价值传输协议 ILP 采用哈希锁定的方案来解决跨账本之间的支付问题。Cosmos 和 Polkadot,则关注如何建立通用跨链开发框架,分别提出了 Tendermint 和 Substrate 的开发框架,它们的跨链核心设计是基于中继链的思想。
公证人机制
中间人机制即为一个团体或一组团体同意原子性地执行链 A上账户数字资产的减少以及链B上接收账户数字资产的增多,此团体是 A 与B 信任的
通过选举一个或多个组织作为公证人,对链 A 的事件进行自动或请求式监听,并在指定事件发生后,在链 B 执行相应动作,实现对事件的响应
侧链/中继
侧链机制: 即某链可以验证和读取另一条链上所发生事务的事件.
侧链中继机制为中继链,其不仅作为应用链的侧链,还负责跨链消息的验证与转发.
以轻客户端验证技术为基础,即:在链 B 上执行类似区块链轻客户端功能的智能 ...
ETH的信息访问
对USDT的数据操作的简单实现
对稳定币的数据进行细粒度的操作,需要对其三条链进行数据同步,并使用RPC或(直接访问其数据库)获取信息。
ETH的信息访问
ERC-20 是一个 以太坊 区块链 上的 智能合约的一种协议标准。USDT也是可选使用ERC20协议将交易写入ETH中。
对ETH的完整信息访问,需要安装GETH同步ETH的数据(过大,不建议尝试)。
都使用GETH创建本地轻节点,或者创建私有链进行测试。
1.安装GETHgeth 的安装教程请参见 Building Ethereum.
2.启动本地节点启动并开始同步区块(fast模式),开启HTTP RPC访问
1geth --datadir .\eth_data\ --http --http.port 1234 --http.corsdomain '*' --cache=1024 --syncmode "fast"
3.GETH的API文档4.GETH的RPC API文档5.基于Python的RPC访问区块链信息1234567891011121314151617181920imp ...
分布式一致性协议之Pbft算法
Practical Byzantine Fault Tolerance
Practical Byzantine Fault Tolerance 实用拜占庭容错,是传统BFT的一种可用性实现,算法的时间复杂度为O(n2)
总览
PBFT 算法中, 存在一个主节点(primary) 和其他的备份节点 (replica), PBFT 共识机制主要包含两部分:
第一部分是分布式共识达成,在主节点正常工作时, PBFT 通过预准备 (pre-prepare)、准备 (prepare) 和承诺 (commit) 三个步骤完成共识;
第二部分是视图转换 (view-change), 当主节点出现问题不能及时处理数据请求时, 其他备份节点发起视图转换, 转换成功后新的主节点开始工作. 主节点以轮转 (round robin) 的方式交替更换;
PBFT 的分布式共识达成过程
请求 (propose). 客户端 (client) 上传请求消息 m 至网络中的节点, 包括主节点和其他备份节点.
预准备 (pre-prepare). 主节点收到客户端上传的请求消息 m, 赋予消息序列号 s, 计算得到 ...
IIOT区块链的强化学习优化
DRL in BlockChain总体结构
abstract 摘要
introduction 绪论
related works 相关工作
system model 系统模型
performance analysis 性能分析
DRL-based performance optimization framework
simulation result and discussions 实验结果与讨论
摘要在区块链环境下,为了满足高吞吐量的需求。
本文提出了一种基于强化学习的基于区块链的工业物联网系统性能优化框架。其目标有三个:
提供一种从可扩展性、去中心化、延迟和安全性方面评估系统的方法。
在不影响系统去中心化、延迟和安全性的前提下,提高底层区块链的可扩展性(吞吐量)
为工业物联网系统设计一个可模块化的区块链,其中区块生产者、共识算法、区块大小和区块间隔可以使用DRL技术选择/调整。
绪论从工业网联网的广泛应用,到区块链帮助工业物联网建立一个安全、高效的数据存储/处理/共享环境。然后引出,对于传统区块链系统来说,在为工业物联网提供高交易吞吐量需求时存在挑战。
从比特币到以太坊TPS仍 ...