2016-06-10 99 views
3

在我直接跳到问题之前,我想谈谈我是如何遇到此问题的。如何将Hyperledger块链部署到IBM Bluemix

基本上,我与IBM blockchain技术现在的工作,不仅要使用块链服务Bluemix,还要修改Hyperledger对源代码。您可以从https://github.com/hyperledger/fabric找到Hyperledger项目。这是一个由GO编写的Linux平台应用程序。

修改之后,我们在当地的流浪虚拟机服务器上进行了测试。所有的变化都很好。

现在,我尝试部署通过CF应用频道更新的代码,以IBM Bluemix。由于缺少基础环境,编译阶段的操作失败。

来到这里,我的问题:

  1. 对于bluemix,当我开始块链服务,实际发生的背后? bluemix是否会启动一些VM来运行对等节点?
  2. 任何人都曾试图通过cf应用程序通道推送点?如何解决对等节点的buildpack?
  3. 当对等节点运行时,它正在监听8080以外的3个端口。在我本地的虚拟机服务器上它是fin。但是我怎样才能在bluemix中启用这些端口?

感谢您的想法和贡献。

+0

Bluemix环境运行该结构并为您提供一些对等和安全用户配置文件以供使用。您今天不能推送面料更改。您可以编写链接代码并将其部署到这些同行。 Bluemix部署在hyperledger之后还有一些提交数字,所以如果您在合约中使用了一些更新的功能(例如GetTxnTimestamp),它将会失败。 – ValerieLampkin

回答

0

我们考虑过将Hyperledger节点作为Cloud Foundry中的应用程序运行。可以使用Go,RocksDB,Docker的可执行文件以及其他必要的依赖包创建buildpack。不过也有在配置几个挑战:

  1. 除了“对等”的应用程序,泊坞窗妖也应该CF容器内开始(我还没有测试,如果码头工人的工作CF容器内)
  2. 作为就像默认的CF应用程序仅暴露1个网络端口一样 - 我们无法在启动验证对等的相同容器中启动REST端点。解决方法 - 我们可以在应用程序部署时使用-c选项作为CF中的不同应用程序运行“成员资格服务”,“验证对等方”和“REST客户端”。
  3. CF路由器支持的协议数量有限,也有可能是这个级别上的问题。

在应用程序级别上,注册证书存在问题(只能发布一次),以防万一CF重新启动您的应用程序 - 验证对等方将无法使用相同证书申请另一个注册证书。 解决方法 - 可以将证书保存在外部持久性存储中并在开始时加载它们。在任何情况下,副总裁将在CF刚刚1实例(可扩展性将不会被使用)

因此,我们几乎不能使用像可扩展性和自动故障切换功能,例如CF好处,而不定制面料的核心。

+0

嗨,我很抱歉,因为我对hyperledger也很陌生。我可以知道你如何设法在Cloud Foundry中打开多个端口给你的Peer? – xtrycatchx

+0

现在,您无法在公共Cloud Foundry部署中打开多个端口。但应该可以将Fabric组件部署为单独的应用程序:将会员服务作为具有50051端口打开的应用程序进行部署,验证对等体只能公开一个端口30303,客户端或不验证对等端将为REST请求打开端口。因此,这些组件中的每个组件都将仅使用Cloud Foundry中的一个网络端口。 –

+0

我假设我们正在谈论Hyperledger织物0.6。我对CloudFoundry并不熟悉,但我不确定你想要做什么是明智的。 Fabric 0.6对等节点自己管理它们的链式代码执行环境 - 即它们用于链式代码执行的Docker容器的生命周期。 CF中的容器可以做到这一点吗?我知道“Do​​cker嵌套”是可能的,但是CF支持这个吗? (更不用说结构环境了。)我们的工作是在虚拟机(AWS)中进行设置和部署。这留下了大部分已知的“部署逻辑”。 –

0

我上面的说明一致,码头工人的工作CF容器内,只有当我们拥有对application.rest你IBMBluemix应该有适当的VM配置CF有限的端口。

相关问题