区块链入门--准备搭建自己的区块链

最近在B站上看到一个Hyperleger Fabric搭建自己的区块链的视频,把里面的内容整理了出来。个人认为其中如何下载安装Docker,利用Hyperleger中的插件,实际搭建的过程讲述的并不清楚,但是对于需要准备的知识这一部分还是大有裨益。

区块链技术简述

技术名词

交易,一次状态转移操作,在这里是一次对键值对的增删改查

区块,交易的集合,区块链网络中节点将他某一段时间内所有的交易打包,形成区块

链,区块的顺序排列,后一区块包括前一区块的哈希值

区块链的类型 三种

私有链 公有链 联盟链

区块链特点

去中心化,这一点存在争议,实际上取决于程度

去信任化,区块链形成后我们只需要信任相关的区块网络

数据共享

不可篡改,发起交易后不可以撤销

区块链平台

区块链1.0:数字货币时代 比特币

区块链2.0:引入智能合约到区块链,但是不能用于商业 以太坊

区块链3.0:我们的时代 eosio 企业级区块链操作系统

超级账本 Hyperleger

应用场景

去信任(去中介)

价值转移(而非拷贝)

数据共享,区块链之前数据共享有三种方式,中介机构保存,互相提供api互相调用,数据存储在第三方,区块链网络中每一个节点都是一致的,只需要访问自己维护的节点。

区块链技术组成部分

P2P网络协议

网络通信中所有的节点都是平等的,没有服务器没有客户端,或者都既是服务器又是客户端,迅雷采用的就是P2P技术。

回顾软件架构的发展:首先中心化,一个服务器多个客户端,系统的可靠性依赖于服务器的稳定性,后来是分布式,服务拆分,横向拓展,系统的可靠性依赖于分布式的容载恢复能力,服务的提供方依旧依赖于某一中心机构。去中心化所有人既是服务的又是客户端,生产者和消费者。

P2P网络实现

Hyperleger Fabric: gRPC对等服务

以太坊:Kad DHT技术

密码学-Hash

Hash:将不定长度的数据转化成固定长度的哈希值 应用最多的是SHA2-256

  • 正向快速、逆向困难
  • 输入敏感
  • 抗碰撞

密码学-加解密算法

对称加密:密钥相同、容易泄露 AES、DES等

非对称加密:公钥/私钥,效率低(RAS算法,椭圆曲线等)

账本结构

共识算法(分布式一致性算法)

强一致性:一般很难实现或实现后性能很差,因为需要大量的网络通信,不能用于商用

最终一致性算法:弱化后的分布式一致

CAP原理:一个分布式系统不可能同时满足一致性,可用性和分区容忍性,必须三者取其二

ACID原理:原子性,一致性,隔离性,持久性

目前共识算法认为有两个系列:Paxos,拜占庭容错,前者假设分布式系统中只有故障节点,没有恶意节点(故意制造错误信息);后者既能容纳故障节点也能容纳恶意节点,一般分布式系统满足Paxos即可,但是区块链要满足拜占庭容错

在这里插入图片描述

Hyperleger Fabric

简介

IBM发起,Linux基金会托管,企业级联盟链基础设施,可拔插的共识机制(sols,kafka),多链多通道隔离,保障数据隐私,只存在相关参与主体中

智能合约

  • 合约协议的数字化代码表达
  • 分布式优先状态机,在一个分布式状态系统中,如果启动状态都一致,而且每个状态的改变状态都一样,最终肯定会得到一个一致的结果
  • 执行环境安全隔离、不受第三方干扰(EVM,Docker),不会受到人的意志影响,目前还无法实现自动化

链码

  • Fabric应用层的基石,必须写一个链码部署在Fabric上,最后基于Fabric提供的SDK,写一个应用程序与部署在区块链上的链码进行交互

链码的编程接口

  • Init()
  • Invoke() 两者都接收链码的SDK作为参数

环境

推荐使用centos,ubuntu,macOS,win10也行但不推荐,Docker环境支持
CSDN上使用centOS搭建Hyperleger fabric的文章较多,可以自行参考
Fabric samples是GO语言项目,所以还要部署GO语言环境

区块链需要的相关知识:

GO
C++
Java
Python
系统架构
以太坊
Linux
hyperleger
JavaScript
Node.js
共识算法
密码学
分布式计算
智能合约
数据挖掘
后端思维
GO语言编程
区块链基础知识 Docker、git等

深入了解区块链

如果想更加深入了解区块链本身的相关基础,可以浏览笔者的另一篇文章

  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是的,自己搭建区块链实现商用是可行的。实际上,很多组织和企业已经开始自己搭建区块链网络来满足特定的商业需求。 搭建区块链网络的过程可以分为以下几个步骤: 1. 确定商业需求和目标:明确你想要解决的问题或提供的服务,确定区块链的应用场景和目标。 2. 选择合适的区块链平台:根据你的需求选择合适的区块链平台或框架。目前有很多开源的区块链平台可供选择,如Ethereum、Hyperledger Fabric等,它们提供了丰富的功能和工具,可以快速搭建和部署区块链网络。 3. 设计和实现区块链网络:根据你的需求和目标,设计区块链网络结构、智能合约等,并进行相应的开发和实现。这包括搭建节点、配置网络参数、编写智能合约等。 4. 测试和部署:完成区块链网络的开发后,进行测试以确保其功能和性能符合预期。一旦通过测试,就可以将区块链网络部署到生产环境中供商业使用。 需要注意的是,自己搭建区块链网络并不意味着一定能够取得商业成功。在搭建之前,需要充分了解区块链技术的特点和限制,并结合具体的业务需求来进行规划和设计。此外,还需要考虑安全性、性能、可扩展性等因素,并与相关的法律法规进行合规性的考虑。 最后,与其他区块链网络相比,自己搭建区块链网络可能面临一些挑战,例如网络效率、节点数量限制、社区生态等方面。因此,在决定自己搭建区块链网络之前,建议进行充分的调研和评估,确保其对商业需求的可行性和适用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值