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.