Cet article est une réimpression de l'article Medium de TIS Co., Ltd. (approuvé).
URL du corps: 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
Dans le post précédent, j'ai expliqué comment configurer le «déploiement de haute disponibilité chaud froid» en utilisant https://qiita.com/SBIR3Japan/items/0d6a3956613ec076381c (ci-après dénommé «ci-dessus») et un équilibreur de charge. Le paramètre est également disponible dans la version 4.0. Cet article décrit une approche alternative à la configuration des nœuds haute disponibilité qui ne nécessitent pas l'équilibreur de charge tiers fourni dans la version 4.0. L'environnement de vérification de cet article utilise le même environnement AWS que la dernière fois. Cependant, il n'utilise pas le service AWS Load Balancer.
Figure 1 Vue d'ensemble des paramètres HA dans cet article
Dans mon dernier article, j'ai expliqué comment créer des services AWS EFS et RDS. Veuillez construire de la même manière que ci-dessus cette fois. (Voir les sections D et E ci-dessus)
Le site Web officiel de Corda indique brièvement que les nœuds de sauvegarde pour HA peuvent être ajoutés avec le paramètre [additionalP2PAddresses]. Les étapes détaillées de cette configuration sont décrites dans ce chapitre.
…<Abréviation>…
node {
name "O=PartyB,L=Tokyo,C=JP"
p2pAddress "26.132.137.54:1433"
//L'adresse p2p ci-dessus est l'adresse IP du nœud Hot Party B. Il n'est plus nécessaire de définir p2pAddress comme nom DNS de l'équilibreur de charge.
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"]]]
}
…<Abréviation>…
#-----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=[
//Pilote «postgresql-42.1.4.Répertoire où se trouve jar »
"/home/ubuntu/driver"
]
rpcSettings {
address="localhost:10009"
adminAddress="localhost:10049"
}
security {
authService {
dataSource {
type=INMEMORY
users=[
{
password=test
permissions=[
ALL
]
user=user1
}
]
}
}
}
Comme plusieurs P2PAddresses peuvent être définies, elles sont définies avec le type de tableau [].
Maintenant qu'un nouveau nœud (nœud froid) a été ajouté au réseau, vous devrez effectuer un bootstrap pour mettre à jour le fichier de paramètres réseau. Avant d'exécuter bootstrap, vous devez d'abord créer un fichier de migration de données pour PartyB afin de créer le schéma requis pour la base de données PostgreSQL.
Créez le "script de migration" requis L'explication du script de migration et la manière de le créer ont été présentées dans la section I ci-dessus. Suivez la même procédure pour le créer.
Créer la construction NW du nœud HA (bootstrap) Exécutez la commande suivante sous le répertoire racine du projet. java -jar corda-tools-network-bootstrapper-4.0.jar — dir build/nodes/ Le fichier "corda-tools-network-bootstrapper-4.0.jar" utilisé ci-dessus est une copie de ~ / tools / network-bootstrapper / du pack d'évaluation Corda-Enterprise-4.0. Si le bootstrap réussit, vous verrez un message de console semblable au suivant:
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!
Les informations du nœud froid Party B sont maintenant ajoutées au nouveau réseau Corda. Une fois le bootstrap terminé, le fichier PartyB node.conf a également été mis à jour. Le contenu mis à jour est le suivant.
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
}
]
}
}
}
J'ai pu définir l'IP (additionalP2PAddresses) du nœud froid de PartyB et la base de données partagée "HAPartyB" (dataSourceProperties) du nœud chaud et du nœud froid. 6. Placez les informations de paramétrage ParyB sur le nœud chaud et le nœud froid Copiez le répertoire Party B créé à l'étape 5 ci-dessus sur le nœud chaud "26.132.137.54" et le nœud froid "26.132.133.94". 7. Configurer un lecteur partagé pour le nœud HA Reportez-vous à la section H de ce qui précède et définissez le lecteur partagé (Artemis) pour le nœud chaud et le nœud froid de Party B.
Placez (copiez) tous les répertoires de nœuds autres que la partie B créés à l'étape 5 sur le nœud correspondant. Désormais, tous les nœuds Corda peuvent démarrer avec succès dans l'instance EC2, comme illustré à la figure 1. Pour vérifier le fonctionnement de la fonction HA de PartyB, reportez-vous à la section J ci-dessus et vérifiez. Vous pouvez confirmer qu'il peut fonctionner de la même manière que ci-dessus. De plus, comme avec ce qui précède, il est nécessaire de démarrer corda.jar pour le nœud chaud et le nœud froid de PartyB. Lorsque le nœud froid est démarré, si le nœud chaud est en cours d'exécution, il sera en état d'attente.
Cet article décrit une approche de configuration des nœuds haute disponibilité sans équilibreur de charge Corda Enterprise version (CE4.0). CE4.0 élimine le besoin du service d'équilibrage de charge tiers et de ses paramètres, qui étaient nécessaires dans le passé, et nous pensons que la haute disponibilité des nœuds peut être garantie à moindre coût et plus facilement. Cependant, comme mentionné dans l'article précédent, il ne s'agit que de la configuration HA du nœud. En fonctionnement réel, la configuration HA est également requise pour le DB et le lecteur partagé. Le prochain article portera sur les grappes de notaires. Remarque: TIS Blockchain Promotion Office (Ra) Thanks to Kiyotaka Yamasaki.
Cet article est une réimpression de l'article Medium de TIS Co., Ltd. (approuvé). URL du corps: 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
Demandes de renseignements sur cet article: SBI R3 Japan [email protected]
Recommended Posts