知乎专栏 | 多维度架构 |
什么是区块链呢? 区块链实际上就是数据库,一个只能插入和查询的数据库,数据不能被修改和删除,并且这个数据库没有DBA管理员角色。这么一说你应该明白了把,实际上运维区块链就是在维护一个分布式数据库。
网上的绝大多数安装例子中,均采用 docker 部署方案,但无一例外的是,全部安装在一个物理机上。如果是生产环境,我们必须分开不是,首先要做的工作是化整为零,拆解应用,搞明白每个容器的功能和作用。然后我们将应用拆分,独立部署到物理节点上去。
+---------------------------------+
| SDK |
+---------------------------------+
| golang | nodejs | python | java |
+---------------------------------+
| |
| |
| +--------------+ |
| | fabric-ca | |
| +--------------+ |
| |
V V
+-------------------+ +-------------------+
| Peer | | Peer |
+-------------------+ +-------------------+
| | | |
V | | V
+-----------+ | | +------------+
| Orderer | | | | Orderer |
+-----------+ | | +------------+
V V
+-------------------+
| Couchdb |
+-------------------+
接下来我们要做的工作是将上面拓扑图种的技术点分分击破。
由于 Hyperledger Fabric 是建立在 Docker 基础之上的。所以不建议你去除 Docker 转而使用传统的本地编译安装方式。我们仍然保持使用 Docker 在每个物理节点上,省去软件的编译和安装环节。
CentOS (Minimal ISO)
物理机
ca 节点,域名:ca.example.com,IP地址:172.16.0.20,端口:7054
orderer 节点,域名 orderer.example.com,IP地址:172.16.0.21,端口:7050
peer 节点,域名:peer.example.com,IP地址:172.16.0.22,端口:7051、7053
couchdb 节点,域名 couchdb.example.com,IP地址:172.16.0.25,端口:5984
tools 节点,域名:tools.example.com,IP地址:172.16.0.20 与 CA 共用一台机器(这里为了节省资源)
在所有节点上运行下面脚本
curl -s https://raw.githubusercontent.com/oscm/shell/master/virtualization/docker/docker.centos7.ce.sh | bash curl -s https://raw.githubusercontent.com/oscm/shell/master/virtualization/docker/docker-compose/docker-compose-1.19.0.sh | bash