Dieser Artikel ist ein Nachdruck des Medium-Artikels von TIS Co., Ltd. (genehmigt).
Body-URL: https://medium.com/@TIS_BC_Prom/r3-corda-3rd-party%E8%A3%BD%E3%83%AD%E3%83%BC%E3%83%89%E3%83% 90% E3% 83% A9% E3% 83% B3% E3% 82% B5% E3% 82% 92% E5% BF% 85% E8% A6% 81% E3% 81% A8% E3% 81% 97% E3% 81% AA% E3% 81% 84% E9% AB% 98% E5% 8F% AF% E7% 94% A8% E6% 80% A7-ha-% E3% 81% AE% E6% A7% 8B % E6% 88% 90% E6% 96% B9% E6% B3% 95-3467f4479f6d
Auf der offiziellen Website von Corda wird kurz darauf hingewiesen, dass Sicherungsknoten für HA mit der Einstellung [zusätzliche P2PA-Adressen] hinzugefügt werden können. Die detaillierten Schritte für diese Konfiguration werden in diesem Kapitel beschrieben.
…<Abkürzung>…
node {
name "O=PartyB,L=Tokyo,C=JP"
p2pAddress "26.132.137.54:1433"
//Die obige p2pAddress ist die IP des Hot Party B-Knotens. Es ist nicht mehr erforderlich, p2pAddress als DNS-Namen des Load Balancers festzulegen.
rpcSettings {
address("localhost:10009")
adminAddress("localhost:10049")
}
cordapps = [
"$project.group:cordapp-contracts-states:$project.version",
"$project.group:cordapp:$project.version"
]
rpcUsers = [[ user: "user1", "password": "test", "permissions": ["ALL"]]]
}
…<Abkürzung>…
#-----PartyB/node.conf right after compile "./gradlew deployNodes"-----#
devMode=true
myLegalName="O=PartyB,L=Osaka,C=JP"
p2pAddress="26.132.137.54:1433"
rpcSettings {
address="localhost:10009"
adminAddress="localhost:10049"
}
security {
authService {
dataSource {
type=INMEMORY
users=[
{
password=test
permissions=[
ALL
]
user=user1
}
]
}
}
}
#-----------------------------------------------#
devMode=true
myLegalName="O=PartyB,L=Osaka,C=JP"
p2pAddress="26.132.137.54:1433" // this is the IP for the hot PartyB node
additionalP2PAddresses=["26.132.133.94:1433"] // this is the IP for the cold PartyB node
// the 3rd Party DB (e.g. PostgreSQL) info., which is the shared DB by PartyB’s Hot & Cold nodes
dataSourceProperties {
dataSource {
password=tisbcpoc
url="jdbc:postgresql://ce4-pgsql.*****.ap-northeast-1.rds.amazonaws.com:5432/HAPartyB"
user=ubuntu
}
dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
}
database {
runMigration="true"
schema="my_schema"
transactionIsolationLevel="READ_COMMITTED"
}
jarDirs=[
//Treiber “postgresql-42.1.4.Verzeichnis, in dem sich jar befindet “
"/home/ubuntu/driver"
]
rpcSettings {
address="localhost:10009"
adminAddress="localhost:10049"
}
security {
authService {
dataSource {
type=INMEMORY
users=[
{
password=test
permissions=[
ALL
]
user=user1
}
]
}
}
}
Da mehrere P2PA-Adressen definiert werden können, werden sie mit dem Array-Typ [] definiert.
Nachdem dem Netzwerk ein neuer Knoten (Cold Node) hinzugefügt wurde, müssen Sie einen Bootstrap ausführen, um die Netzwerkparameterdatei zu aktualisieren. Bevor Sie Bootstrap ausführen, müssen Sie zuerst eine Datenmigrationsdatei für PartyB erstellen, um das erforderliche Schema für PostgreSQL DB zu erstellen.
Erstellen Sie das erforderliche "Migrationsskript". Die Erläuterung des Migrationsskripts und dessen Erstellung wurden in Abschnitt I des Vorstehenden vorgestellt. Gehen Sie genauso vor, um es zu erstellen.
Erstellen Sie eine NW-Konstruktion des HA-Knotens (Bootstrap). Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus. java -jar corda-tools-network-bootstrapper-4.0.jar — dir build/nodes/ Die oben verwendete Datei "corda-tools-network-bootstrapper-4.0.jar" ist eine Kopie von ~ / tools / network-bootstrapper / des Corda-Enterprise-4.0 Evaluation Pack. Wenn der Bootstrap erfolgreich ist, wird eine Konsolenmeldung angezeigt, die der folgenden ähnelt:
Bootstrapping local test network in /mnt/**-poc-CE-additionalP2PAddresses/build/nodes
Generating node directory for PartyB
Generating node directory for Regulator
Generating node directory for Notary
Generating node directory for PartyA
Nodes found in the following sub-directories: [PartyA, PartyB, Notary, Regulator]
Found the following CorDapps: []
Not copying CorDapp JARs as --copy-cordapps is set to FirstRunOnly, and it looks like this network has already been bootstrapped.
Waiting for all nodes to generate their node-info files...
Distributing all node-info files to all nodes
Loading existing network parameters... NetworkParameters {
minimumPlatformVersion=4
notaries=[NotaryInfo(identity=O=Notary, L=London, C=GB, validating=true)]
maxMessageSize=10485760
maxTransactionSize=524288000
whitelistedContractImplementations {
}
eventHorizon=PT720H
packageOwnership {
}
modifiedTime=2019-06-25T10:37:15.047Z
epoch=1
}
Gathering notary identities
Generating contract implementations whitelist
Network parameters unchanged
Bootstrapping complete!
Die Informationen zu Party B Cold Node werden jetzt zum neuen Corda-Netzwerk hinzugefügt. Nach Abschluss des Bootstraps wurde auch die Datei PartyB node.conf aktualisiert. Der aktualisierte Inhalt lautet wie folgt.
devMode=true
myLegalName="O=PartyB,L=Osaka,C=JP"
p2pAddress="26.132.137.54:1433"
additionalP2PAddresses=["26.132.133.94:1433"]
dataSourceProperties {
dataSource {
password=tisbcpoc
url="jdbc:postgresql://ce4-pgsql.*****.ap-northeast-1.rds.amazonaws.com:5432/HAPartyB"
user=ubuntu
}
dataSourceClassName="org.postgresql.ds.PGSimpleDataSource"
}
database {
runMigration="true"
schema="my_schema"
transactionIsolationLevel="READ_COMMITTED"
}
jarDirs=[
"/home/ubuntu/driver"
]
rpcSettings {
address="localhost:10009"
adminAddress="localhost:10049"
}
security {
authService {
dataSource {
type=INMEMORY
users=[
{
password=test
permissions=[
ALL
]
user=user1
}
]
}
}
}
Ich konnte die IP (zusätzliche P2PA-Adressen) des kalten Knotens von PartyB und die gemeinsam genutzte Datenbank "HAPartyB" (dataSourceProperties) des heißen Knotens und des kalten Knotens festlegen. 6. Platzieren Sie die ParyB-Einstellungsinformationen auf dem heißen und dem kalten Knoten Kopieren Sie das in Schritt 5 erstellte Party B-Verzeichnis sowohl auf den Hot-Knoten "26.132.137.54" als auch auf den Cold-Knoten "26.132.133.94". 7. Richten Sie ein freigegebenes Laufwerk für den HA-Knoten ein Lesen Sie Abschnitt H oben und stellen Sie das gemeinsam genutzte Laufwerk (Artemis) für den heißen und kalten Knoten von Party B ein.
Platzieren (kopieren) Sie alle Knotenverzeichnisse außer Partei B, die in Schritt 5 erstellt wurden, auf dem entsprechenden Knoten jeder Person. Jetzt können alle Corda-Knoten erfolgreich in die EC2-Instanz booten (siehe Abbildung 1). Informationen zum Überprüfen der Funktion der HA-Funktion von PartyB finden Sie in Abschnitt J oben und überprüfen Sie diese. Sie können bestätigen, dass es auf die gleiche Weise wie oben funktioniert. Wie oben ist es auch erforderlich, corda.jar sowohl für den heißen als auch für den kalten Knoten von PartyB zu starten. Wenn der kalte Knoten gestartet wird und der heiße Knoten ausgeführt wird, befindet er sich im Wartezustand.
In diesem Artikel wurde ein Ansatz zum Konfigurieren von HA-Knoten ohne einen Load Balancer der Corda Enterprise-Version (CE4.0) beschrieben. CE4.0 macht den Lastausgleichsdienst eines Drittanbieters und seine Einstellungen, die in der Vergangenheit erforderlich waren, überflüssig, und wir glauben, dass eine hohe Verfügbarkeit von Knoten zu geringeren Kosten und einfacher garantiert werden kann. Wie im vorherigen Artikel erwähnt, handelt es sich jedoch nur um die HA-Konfiguration des Knotens. Im tatsächlichen Betrieb ist die HA-Konfiguration auch für die Datenbank und das gemeinsam genutzte Laufwerk erforderlich. Der nächste Artikel befasst sich mit Notarclustern. Hinweis: TIS Blockchain Promotion Office (Ra) Thanks to Kiyotaka Yamasaki.
Dieser Artikel ist ein Nachdruck des Medium-Artikels von TIS Co., Ltd. (genehmigt). Text-URL: https://medium.com/@TIS_BC_Prom/r3-corda%E3%83%8E%E3%83%BC%E3%83%89%E3%81%AE%E9%AB%98%E5% 8F% AF% E7% 94% A8% E6% 80% A7-ha-% E3% 81% A8% E3% 81% 9D% E3% 81% AE% E6% A7% 8B% E6% 88% 90% E6 % 96% B9% E6% B3% 95-34cb5dd409d1
Anfragen zu diesem Artikel: SBI R3 Japan [email protected]
Recommended Posts