这是我这段时间学习区块链开发以来打造的第一个区块链平台,之所以叫做简易区块链,是因为它确实比较简易,仅仅是实现了底层的一些功能,不足以作为一个真正的公链使用,但通过学习,我们能够通过代码更加理解比特币白皮书中描述的各种比特币原理,区块链世界,无论是研究理论的,还是实战开发的,甚至炒币玩资本的,都离不开比特币的影子,区块链技术毕竟是从比特币中剥离抽象而来,所以,作为一个技术人员,无论是研究以太坊,超级账本,甚至是各种公链,包括某些山寨公链,都需要先去理解比特币原理,而对于开发者而言,理解原理最好的方式就是将其通过代码实现,当然,我们这里实现的一些原理只是应用实战范围之内可以实现的,比如椭圆加密算法,我们要实现的只是使用椭圆加密去实现某些加密功能,而非用代码去实现一个完整的椭圆加密代码库。
HyperledgerFabric启用CouchDB作为状态数据库一.概述数据请求流超级账本采用背书/共识模型,模拟执行和区块验证是在不同角色的节点中分开执行的。模拟执行是并发的,这样可以提高扩展性和吞吐量:背书节点:模拟执行链码Peer节点:验证交易并提交2.超级账本存储元素超级账本包含以下元素:账本编号:快速查询存在哪些账本账本数据:实际的区块数据存储区块索引:快速查询区块/交易状态数据:最新
提到容器平台,最早接触的便是LXC(Linux Container),当时是2010年刚刚接触虚拟化平台的时候,当时开源解决方案是xen的天下(后来KVM才后来者居上),且性能各方面都不弱,价值当时还不是移动互联网时代,业务量远远没有那么大,大部分公司都是物理机部署应用,用虚拟化平台的公司也是寥寥无几,可想而知,没有业务,没有场景,那就没有技术的用武之地了,所以,LXC生而伟大而用不逢时,Docker之所以能够青出于蓝而胜于蓝,取得如此大的成功的原因还是归咎于移动互联网带来的流量大爆炸,普通基于物理机,虚拟机甚至云主机(虽然弹性伸缩应该是云主机的特性,但是当时国内看起来根本没有做到的,比起AWS来,差距之大,只能意会)的业务架构已经不能满足目前的应用场景了。
在介绍我们的主角Fabric之前,我们先来介绍一下它的父项目:Hyperledger-超级账本Hyperledger项目是首个面向企业的开放区块链技术的重要探索。在Linux基金会的支持下,吸引了包括IBM、Intel、摩根等在内的众多科技和金融巨头的参与。
Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。系统链码用来实现系统层面的功能,用户链码实现用户的应用功能。链码被编译成一个独立的应用程序,运行于隔离的Docker容器中。 和以太坊相比,Fabric链码和底层账本是分开的,升级链码时并不需要迁移账本数据到新链码当中,真正实现了逻辑与数据的分离,同时,链码采用Go、Java、Nodejs语言编写。
前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来。因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通过网页发送邮件也同样报错,估计是邮件防垃圾服务进行了限制,需要等到第二天才能恢复(第二天确实恢复正常),但是当天如果需要继续使用zabbix的邮箱监控的话,只能通过更换告警邮箱。 于是配置了新的邮箱qixin_monitor@163.com用于告警。但是新问题又来了......
本文内容翻译自:https://chainhero.io/2018/03/tutorial-build-blockchain-app-2/ ,文档中的命令操作均在实际环境进行验证,现将成果分享给大家。
目录flag基本使用os.Args基本使用flag与os.Args组合使用通过命令行添加/查询区块测试代码与测试结果一.flag基本使用通常我们在写命令行程序(工具、server)时,对命令参数进行解析是常见的需求。各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。在go标准库中提供了一个包:flag,方便进行命令行解析。1.导入flag包import("flag")2.使用示例//
以上的转账交易中,我们共计创建了四个区块,其中一个区块为创世区块,另外三个区块都是对我们的交易进行打包后产生的新区块,本文将介绍如何将区块信息打印出来。
其实这个章节的一些知识点在转账交易那一章节均有所涉及,所以,查询余额这个功能相对而言比较简单,只要熟悉了UTXO模型,加上对交易流程的了解之后,对查询余额基本上已经有了思路。
一.概念简介Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。Base64常用
搭建Harbor企业级docker仓库一、Harbor简介1.Harbor介绍Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。
1. 通过自动化脚本启动服务 2. 通过手动方式启动服务 3. 测试链码
目录:一.初始化区块链1.代码结构2. 定义区块结构与方法3. 定义区块链结构与方法4. 帮助库代码5. 测试生成区块与初始化区块链6. 测试代码二. POW挖矿实现1.代码结构2. 定义pow算法实现3. 修改区块的生成方式(从自定义到挖矿)4. 测试代码,测试挖矿5.验证区块有效性一.初始化区块链1. 代码结构Block.go :定义区块结构与方法BlockChain.go :定义区块链结构与
又很久很久没有更新博客了,也很久很久没有做云计算了,前期做了一段时间的游戏,现在又回归到常规运维的岗位,最近接触到redis这玩意,也就简单配置了下,至少要熟悉下常规的配置,才能做到运维支撑嘛。现在也没有很多时间完善博客格式什么的,就把一些笔记贴进来,方便自己后期查看,如果可以,希望对新学者有所帮助吧。操作环境说明10.117.41.242 yunwei_dev01 Centos6u510.117
很长时间都没接触saltstack了,近期由于需要上线的项目需要使用lvs+heartbeat,于是安装了5个虚拟机进行演练,为了适应项目,采用 了rhel5的ISO安装系统,同时想到不如趁此机会,再通过saltstack管理这些机器不是更好吗?于是折腾了一把,不聊遇到了一些问题;环境:查看master版本:root@ubuntu1404:~# salt-master --versio
最近这段时间,准备继续把django拾起来,断断续续的学习等于等于前功尽弃,学习的效果不是很好,加上这段时间工作上面的事情相对较少,今天中午在休息时间重新搭建了下django环境。 我是在ubuntu12.04(python:2.7.3),安装了django1.7,准备学习,翻阅django的官方文档看了看,注意到This tutoria
因为最近换了工作的原因,没有机会接触云计算,加上其他一些非技术原因,不方便在博客上面记录关键的东西,最近写得东西基本都是自己学习的积累,高手直接飘过即可。 最近在学习python的django架构,学到数据库连接这部分,需要import MySQLdb这个模块,系统自带没有安装,于是乎用最简单的方法安装sudo easy_install mysql
前段时间觉得win8的开机速度,反应啥的都是比较快的,安装什么软件基本上问题都不大,但是最近安装个软件需要.NET Framework3.5,于是就下载,结果报错:挂载win8的安装盘,把sources目录下面的sxs目录拷贝至C盘或者D盘根目录下.C:\Windows\System32\cmd.exe 右击,以管理员身份运行安装.NET Framework3.5成功
SecureCRT 的功能非常强大,应该不需要我这边再做详细说明了,关于其很多配置问题网上都可以查询到,比如最常见的中文乱码问题,这里就不说明了.这篇文章要记录的是一个奇怪的问题,就是中文显示"基本"正常,关于引号的含义,看下图:密码显示是横着的, 那么中文确实是显示成功了,问题就不是出现在中文乱码的层面了,于是从字体入手,查看这个Session的字体是什么?字体显示为@SImSun-ExtB 将
通过常规步骤完成CloudStack4.2的安装,数据库初始化,模板初始化之后,通过cloudstack-setup-management 启动cloudstack-management服务。等待片刻之后,打开管理节点的URL输入用户名:admin 密码:password,一直报错:用户名或密码错误查看日志:尝试过重新安装cloudstack以及重新初始化databases以及进行cloudsta
关于这个问题,主要以文字描述为主,最终解决方法其实就一个步骤。 问题描述: 某客户需要部署某企业的云平台,但是由于年前没有足够的物理机资源,所以提供的资源均为虚拟机,现在让我们做技术评估。 其实观察整个环境,没有什么好做技术评估的,平时一般情况下面,除了主机我们使用物理机外,其他的所有服务都没有必要使用物理机资源,所
创建好新的Zone之后,启用Zone,观察两个系统 VM的状况,发现都是Stopped,状态,并且一直在重建。查看日志管理节点日志: /var/log/cloudstack/management/management-server.log查看主机[Agent]节点的日志/var/log/cloudstack/agent/agent.log 通过日志可以看出,问题出在挂载二级存储的时候。通过Clou
很久之前,用过一段时间的Puppet,也就是简单用了用,后来慢慢就丢了,然后就去搞mysql的一些东西了,或许,很多事情就是注定的,以为再来不会用它了的时候,任务来了,说要继续研究这玩意,后面遇到一个牛X的同事,说用SaltStack比较好,而且他已经用这个做了不少实际游泳的案例了,他说,Puppet注重于最终状态,SaltStack注重于实时命令的运行,SaltStack=Pup
背景阐述CloudStack是开源软件,CloudPlatForm是CloudStack的企业版实现,其中增加了某些企业级特性,如主机高可用,所以打算将原有的CloudStack升级为CloudPlatForm,从而提高整个架构的稳定性与高可用性。建议使用本手册的读者先单独安装CloudStack4.1.1以及CloudPlatForm4.2.0或者CloudStack4.2.0,需要足够了解两个
问题背景:运行SSVM跟CPVM的物理机发生宕机,查看SSVM跟CPVM状态仍旧为 Running, 所在主机仍旧显示为宕机物理机,于是将该物理机启动成功,登录物理机通过virsh list --all 命令查看SSVM跟 CPVM是否确实运行成功,发现并没有,再查询所有物理机,发现依旧没有发现 SSVM跟 CPVM的虚机,然而CloudStack的UI界面显示SSVM跟CPVM一直为Runnin
大部分朋友在使用tomcat的时候,常用的功能是在一个tomcat中为不同的应用设置多个访问路径,然后修改不同的访问端口,比如初始化端口是8080,那么另一个应用使用8081,其他的依次类推,只要做到每个应用的端口号不重复就行。 但是本人在实际环境中遇到如下的问题,需要在一个系统上面同时安装两个不同“渠道”的tomcat,一个rpm包的tomc
很过玩过 CloudStack的童鞋,或多或少在刚刚入门 CloudStack的时候,对一个搭建环境需要做N多次的创建,删除才能最终运行好一个云环境,但是在这个过程中,如果遇到问题,找不出其他方法解决的话,很多新手暂时能够想到的就是重新创建环境,在这个过程中,有几项注意点需要提醒各位,否则即使重建好了环境,也会由于某些配置的残留而导致新的环境出现新的问题。1. CloudStack
Unable to execute upgrade script /xx/xx/schema-40to410.sql问题背景: 在一个新装的操作系统上面安装CloudStack4.1.1,执行到cloudstack-setup-management之后,CloudStack开始启动服务中报错  
在这边博客中提到:CloudStack实现 VM高可用功能http://clovemfong.blog.51cto.com/3297559/1316868但是对于主机HA功能一直没有实现,跟it你好兄http://itnihao.blog.51cto.com/仔细讨论并进行协作后通过采用CloudStack的企业版实现了主机HA功能,如下为具体操作步骤: CloudPlatform的
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号