2016-06-10 6 views
3

Bevor ich direkt auf die Frage spreche, möchte ich darüber sprechen, wie ich auf diese Frage stieß.So stellen Sie Hyperledger-Blockchain auf IBM Bluemix

Im Grunde arbeite ich gerade mit der Blockchain-Technologie von IBM, nicht nur um den Blockchain-Dienst in Bluemix zu verwenden, sondern auch um den Peer-Quellcode von Hyperledger zu modifizieren. Sie finden das Hyperledger-Projekt unter https://github.com/hyperledger/fabric. Es ist eine Linux-Plattform-App von GO geschrieben.

Nach der Änderung hatten wir einen Test auf lokalen vagrant VM-Servern. Alle Änderungen sind in Ordnung.

Jetzt versuche ich, den aktualisierten Code über CF App-Kanal auf IBM Bluemix bereitzustellen. Die Aktion ist in der Kompilierungsphase fehlgeschlagen, da die Basisumgebung fehlt.

Hier kommen meine Fragen:

  1. Für Bluemix, wenn ich die Blockkette Dienst starten, was eigentlich hinter passiert? Startet bluemix ein paar VM für mich, um die Peer-Knoten zu betreiben?
  2. Wer hat jemals versucht, Peer über cf App-Kanal zu pushen? Wie setze ich das Buildpack für den Peer-Knoten ein?
  3. Wenn der Peer-Knoten läuft, hört er auf 3 andere Ports als 8080. In meinem lokalen VM-Server ist es fin. Aber wie kann ich diese Ports in bluemix aktivieren?

Vielen Dank für Ihre Ideen und Ihren Beitrag.

+0

Die Bluemix-Umgebung führt die Struktur aus und bietet Ihnen einige Peers und Sicherheitsbenutzerprofile, mit denen Sie arbeiten können.Heute können Sie keine Stoffwechsel mehr durchführen. Sie können Chaincode schreiben und es für diese Peers bereitstellen. Die Bluemix-Bereitstellung umfasst auch mehrere Commit-Nummern hinter Hyperledger. Wenn Sie also einige neuere Funktionen in Ihrem Vertrag verwenden (wie z. B. GetTxnTimestamp), schlägt dies fehl. – ValerieLampkin

Antwort

0

Wir überlegten, den Hyperledger-Knoten als Anwendung in Cloud Foundry auszuführen. Es ist möglich, ein Buildpack mit Go, RocksDB, ausführbaren Dateien für Docker und anderen notwendigen Abhängigkeiten zu erstellen. Dennoch gibt es einige Herausforderungen in der Konfiguration:

  1. Neben „Peer“ Anwendung, der Dämon Docker sollte auch innerhalb CF Container gestartet werden (ich habe die Prüfung nicht, wenn Docker innerhalb CF Container funktioniert)
  2. Wie Soweit die CF-Anwendung standardmäßig nur einen Netzwerkanschluss verfügbar macht - Wir können den REST-Endpunkt nicht in demselben Container starten, in dem der Validierungs-Peer gestartet wurde. Problemumgehung - Wir können "Mitgliedschaftsdienst", "Validierungs-Peer" und "REST-Client" als verschiedene Anwendungen in CF unter Verwendung der Option -c zur Anwendungsbereitstellungszeit ausführen.
  3. CF Router unterstützt eine begrenzte Anzahl von Protokollen, es ist möglich, dass die Probleme auch auf dieser Ebene auftreten.

Auf Anwendungsebene ein Problem mit Registrierungs-Zertifikat gibt es (es nur einmal ausgegeben werden kann), für den Fall, wenn CF startet Ihre Anwendung - Validierung Peer die gleichen Anmeldeinformationen nicht anwenden können, um für eine andere Enrollment Zertifikat . Problemumgehung - Es ist möglich, Zertifikate im externen permanenten Speicher zu speichern und sie beim Start zu laden. In jedem Fall hat VP nur 1 Instanz in CF (Skalierbarkeit wird nicht verwendet)

Daher können wir CF-Vorteile wie Skalierbarkeit und automatisches Failover ohne Anpassung an Fabric-Core kaum verwenden.

+0

Hallo, ich entschuldige mich im Voraus, denn ich bin auch sehr neu im Hypertext-Bereich. Darf ich wissen, wie Sie mehrere Ports zu Ihrem Peer in Cloud Foundry geöffnet haben? – xtrycatchx

+0

Derzeit können Sie in öffentlichen Cloud Foundry-Bereitstellungen nicht mehr als einen Port öffnen. Es sollte jedoch möglich sein, Fabric-Komponenten als separate Anwendungen zu implementieren: Mitgliedschaftsdienst als Anwendung mit 50051 geöffnetem Port, Validierungs-Peer kann nur einen Port offenlegen 30303, Client oder nicht-Validierungs-Peer öffnet Port für REST-Anforderungen. Daher wird jede dieser Komponenten nur einen Netzwerkport in Cloud Foundry verwenden. –

+0

Ich nehme an, wir sprechen über Hyperledger Stoff 0.6. CloudFoundry ist mir nicht besonders vertraut, aber ich bin mir nicht sicher, was Sie auf vernünftige Weise erreichen wollen. Fabric 0.6-Peers verwalten ihre Chaincode-Ausführungsumgebungen selbst - d. H. Den Lebenszyklus der Docker-Container, die sie für die Chaincode-Ausführung verwenden. Kann ein Container in CF das tun? Ich weiß, dass "Docker Nesting" möglich ist, aber unterstützt CF dies? (Ganz zu schweigen von der Fabric-Umgebung.) Was für uns funktionierte, ist die Einrichtung und Bereitstellung in VMs (AWS). Das lässt die meisten bekannten "Deployment-Logik" an Ort und Stelle. –

0

Ich stimme den obigen Anweisungen zu, Docker funktioniert innerhalb CF-Container nur, wenn wir Peer-Anwendung haben.Rest Sie IBMBluemix sollte ordnungsgemäße VM-Konfiguration als CF haben begrenzte Ports.

Verwandte Themen