2017-02-28 7 views
1

Gibt es eine Möglichkeit, verschiedene Aspekte eines Kettencodes (d. H. Weltstatus, Schlüssel, andere Attribute?) Von einem Kettencode in einen anderen zu kopieren? Ich experimentiere an diesem Punkt, aber ich kann ein Szenario vorhersehen, in dem ich einige Go-Code & deploy ändern muss.hyperledger fabric block copy

Die Bereitstellung wird im Grunde einen neuen Chaincode mit einem eigenen Status erstellen. Angenommen, ich möchte auf Schlüssel aus dem vorherigen Chaincode zugreifen. Muss ich alle vorherigen Chaincode-IDs im Fabric verfolgen? Gibt es eine Möglichkeit, alle Schlüssel in den neu implementierten Chaincode zu integrieren?

Antwort

1

Es gibt zwei Möglichkeiten in Fabric 1.0, die Ihnen helfen können.

1) Kettencode upgrade. Nehmen wir an, der erste Chaincode ist Version 1. Wenn Ihr neuer Chaincode denselben Namen hat, Sie aber einfach die Versionsnummer erhöhen, erbt der neue Chaincode nach der Instantiierung den vollen Status des ersten Chaincodes. Der erste Kettencode wäre nicht mehr aufrufbar.

2) Chaincode für Chaincode-Aufrufe. Der zweite Kettencode kann den ersten Kettencode unter Verwendung des InvokeChaincode() API aufrufen. Dies könnte in der Funktion Init() des neuen Chaincodes zur Instanziierungszeit ausgeführt werden, um alle relevanten Zustände aus dem ersten Chaincode zu lesen und den assoziierten Zustand im zweiten Chaincode zu erzeugen. Alternativ könnte der zweite Kettencode den ersten Kettencode aufrufen, wie er während herkömmlicher Aufrufe benötigt wird, um auf einen Zustand, der für eine bestimmte Transaktion benötigt wird, Bezug zu nehmen oder ihn zu kopieren.

Um Lösung # 2 zu verwenden, benötigen Sie natürlich die richtigen Abfragefunktionen, die auf dem ersten Kettencode verfügbar sind. Wenn Sie diese nicht installiert haben, können Sie eine kombinierte Lösung verwenden. Verwenden Sie zuerst Lösung 1, um den ersten Kettencode zu aktualisieren, um die richtigen Abfragefunktionen hinzuzufügen, die benötigt werden, und dann Lösung 2, um diese neuen Abfragefunktionen von Ihrem brandneuen Kettencode aufzurufen.

Verwandte Themen