Advanced Configuration
You can configure the different components of the test network to use non-default parameter values for various settings (such as host names or port numbers). Here is a list of configurations you can tweak, classified by the DLT type.
Corda¶
Relay¶
To run the relay on a different port from the default (9081), do the following:
- Navigate to the
weaver/core/relayfolder in your clone of the Cacti repository. - Update the
portfield inconfig/Corda_Relay.toml. - To ensure that the relay of
network1can communicate with this relay, update theportfield in therelays.Corda_Relaysection inconfig/Fabric_Relay.tomlwith the same value. - To ensure that the relay of
network2can communicate with this relay, update theportfield in therelays.Corda_Relaysection inconfig/Fabric_Relay2.tomlwith the same value. - (You can update host names in similar locations, by adjusting the
hostnamefield.) - When you attempt a Fabric to Corda interoperation flow, use the new host name or port (instead of
localhost:9081).
Driver¶
To run the driver on a different port from the default (9099), do the following:
- Navigate to the
weaver/core/drivers/corda-driverfolder in your clone of the Cacti repository. - Set the environment variable
DRIVER_PORTappropriately while running the executable as follows:
To ensure that the relay can connect to this driver:
- Navigate to the
weaver/core/relayfolder in your clone of the Cacti repository. - Update the
portfield in thedrivers.Cordasection inconfig/Corda_Relay.tomlwith the same value.
Network¶
| Notes |
|---|
In our sample setup, all the Corda nodes must be running on the same machine (localhost or some other) for seamless communication. |
To change the ports the Corda nodes are listening on, do the following:
- Navigate to the
weaver/tests/network-setups/cordafolder in your clone of the Cacti repository. - Update the exposed ports in
docker-compose.yml(defaults are10003for thenotarycontainer and10006for thepartyacontainer). - Navigate to the
weaver/samples/corda/corda-simple-applicationfolder in your clone of the Cacti repository. - Update the
CORDA_HOST(default islocalhost) andCORDA_PORT(default is10006) environment variables on your host machine to reflect the above update, or run the client bootstrapping script as follows: - When you attempt a Fabric to Corda interoperation flow, use the new host name and port values as in the following example (
network1requestingCorda_Network):
Client Application¶
The config files used to initialise the network's verification policies, access control policies, and security group info, contain the address (host name and port) of the Corda node.
To update the address of the Corda node, do the following:
- Navigate to the
weaver/samples/corda/corda-simple-applicationfolder in your clone of the Cacti repository. - Edit the
rules --> resourcefield in line 7 inclients/src/main/resources/config/FabricNetworkAccessControlPolicy.jsonby replacinglocalhost:10006with<CORDA_HOST>:<CORDA_PORT>as specified in the previous section.
Fabric¶
Relay¶
To run the relay on a different port from the default (9080 for network1 and 9083 for network2), do the following:
- Navigate to the
weaver/core/relayfolder in your clone of the Cacti repository. - Update the
portfield inconfig/Fabric_Relay.toml(fornetwork1) orconfig/Fabric_Relay2.toml(fornetwork2). - To ensure Fabric-Fabric relay communication, update the foreign relay port in the
portfield in therelays.Fabric_Relaysection in either of the above files. - To ensure that the Corda network's relay can communicate with this relay, update the
portfield in therelays.Fabric_Relaysection inconfig/Corda_Relay.toml. - (You can update host names in similar locations, by adjusting the
hostnamefield.) - When you attempt a Fabric to Fabric or Corda to Fabric interoperation flow, use the new host name or port (instead of
localhost:9081orlocalhost:9083). - Navigate to the
weaver/core/drivers/fabric-driverfolder in your clone of the Cacti repository. - Update the
RELAY_ENDPOINTvariable in.envor specifyRELAY_ENDPOINT=<hostname>:<port>in the command line while running the driver usingnpm run dev. - Navigate to the
weaver/samples/fabric/fabric-clifolder in your clone of the Cacti repository. - Update the
relayEndpointvariables appropriately.
Driver¶
The fabric-driver configuration can be controlled by environment variables either set in .env in the weaver/core/drivers/fabric-driver folder (or a copy if you created one) in your clone of the Cacti repository or passed in the command line when you run npm run dev to start the driver. The relevant variables you can control when you make any change to the setup are:
CONNECTION_PROFILE: this is the path to the connection profile. If you make changes to the network or use a different one, create a new connection profile and point to it using this variable.RELAY_ENDPOINT: this is the endpoint of the relay (hostname and port), and you can adjust it as described in the previous section; this is where the relay will be listening for incoming requests and from where the relay will channel foreign requests as well.DRIVER_ENDPOINT: this is the hostname and port the driver itself will bind to, and you can change it from the default (localhost:9090fornetwork1andlocalhost:9095fornetwork2) as per your need
Fabric CLI¶
You can adjust settings for fabric-cli in the .env and config.json (in the weaver/samples/fabric/fabric-cli folder in your clone of the Cacti repository) as described earlier.
Important environment variables (in .env) are:
DEFAULT_CHANNEL: this is the name of the channel the CLI will interact with. If you build a new channel or network, update the channel name here.DEFAULT_CHAINCODE: this is the name of the interoperaton chaincode the CLI will submit transactions and queries to for policy and security group bootstrapping. If you wish to test with a modified interoperation chaincode with a different name, update this value.MEMBER_CREDENTIAL_FOLDER: as described earlier, this is an absolute path that points to policies and security group info associated with foreign networks. You can adjust this info for the existing three networks or add credentials for another network you wish to test interoperation flows with.LOCAL: this is a boolean, indicating whether the network to connect to is running on (and as)localhostDEFAULT_APPLICATION_CHAINCODE: this is the name of the application chaincode which maintains information that can be shared (with proof) with other networks upon request using interoperation. You may write and deploy your own chaincode and use its name here instead of the defaultsimplestate.CONFIG_PATH: this points to the JSON file containing the configurations of all the Fabric networks that need to be configured using thefabric-cli.
The config.json (which can have a different name as long as you add the right reference to .env and configure fabric-cli suitably) has the following structure (it can have any number of networks specified):
{
"network1": {
"connProfilePath": "",
"relayEndpoint": ""
},
"network2": {
"connProfilePath": "",
"relayEndpoint": ""
}
}
connProfilePath: absolute path of the network's connection profilerelayEndpoint: hostname and port of the particular network's relay (make sure you sync this with any changes made to that relay's configuration)