How corda network is designed - corda

Corda doc says
"Admission to the network
Unlike traditional blockchain, Corda networks are semi-private. To join a network, a node must obtain a certificate from the network operator. This certificate maps a well-known node identity to:"
I have a few questions about how corda netowrk is desined.
How network is partitioned.
Can all corda instance form one network? Or, are there several networks that can be connected?
Who is network operator?
Is it one party? Can that operator dominate network arbitrary?
Is Notary included in network?
Is Notary a component of network, or can notary notrize several corda netowrks?
Does network operator authorize notary, or trust notary?

A Corda network is a set of well identified legal entities. When you want to join a network you sign a legal document (participation terms of use) and then you submit something called Certificate Signing Request; once it's approved your node automatically downloads the required certificates that identify it on that network and allows it to become discoverable by other nodes so it can interact with them.
Corda network is an example, and I recommend that you go through their website: https://corda.network
In the case of Corda network, the operator is a consortium; not one organization.
That link I shared, will answer all of your questions:
Participation: https://corda.network/participation/index
Governance: https://corda.network/governance/index
Types of networks in Corda network: https://corda.network/participation/network-choice
Notary: https://corda.network/participation/notary-considerations

Related

While building a Corda network with multiple nodes and parties, how is the certificate renewal managed?

While building a Corda network with multiple nodes and parties, how is the certificate renewal managed? Once a new certificate is issued to a node/party, how does that affect the earlier transactions and any ongoing transactions?
What you're asking about depends on the TYPE of corda network right?
So for example:
A bootstrapped network is "hard coded" from the beginning, meaning the certs and network map are all generated by the network bootstrappeer (https://docs.corda.net/docs/corda-os/4.7/network-bootstrapper.html) This is also what's normally used when running the gradle deployNodes task.
A production network usually has a network manager that handles most of the tooling here. That means that your nodes would just connect to the network manager and so you're not going to be as worried. You may need to generate a couple of certs at the beginning but after that you're good. For a good example take a look at this example of kubernetes where the certs are generated on corda firewall: https://github.com/corda/corda-kubernetes-deployment/tree/master/corda-pki-generator

Is it possible to connect two corda networks?

We have created two corda networks in production mode with Notary and PartyA in one network and PartyB and PartyC in the other one. How can we connect these two corda networks? (FYI - Both networks have separate network root CA).
I'm afraid that isn't supported. There's no designed mechanism for merging two zones together at the moment.

Clarification on corda network type of cordapp example

I m referring Can corda nodes communicate when run from different networks?
I am looking at 3.3 opensource cordapp example and could see the certificates are generated automatically while deployment with devmode=true.
Can I get information - whether it is configured with network type as business network or compatibility zone ?
Can I get more information on how to configure as a business network? is there any example?
If you use deployNodes to create your nodes, you create a mini-compatibility zone of nodes running in devMode. Unlike a traditional compatibility zone, you need to use the Network Bootstrapper tool to manually add nodes to the network, rather than using the dyanmic joining process available in a compatibility zone with a central network map service.
A business network is a sub-group within a compatibility zone of nodes operating for a specific business purpose. A node can be part of multiple business networks. You can read more about business networks here: https://solutions.corda.net/business-networks/what-is-a-business-network.html.

Can nodes communicate with each other when each node uses separate Internet service and connectivity offered by different ISPs?

We have come across a situation where each node may use separate "Internet service and Connectivity" offered by different ISPs.
Can the nodes still communicate?
For example -
If node A is running in a machine that is connected to internet using "Sky Broadband" ISP
and
If node B is running in another machine that is connected to internet using "Vodafone Broadband" ISP -
Can node A and node B communicate?
It depends what you mean by "network". Corda has two types of network:
Business networks: Groups of nodes running particular CorDapps. Each such group will often have a co-ordinating party - the Business Network Operator - who manages the distribution of the app and rules governing its use (including around membership of the business network)
Compatibility zones: Group of nodes that are each identified using a certificate issued by the same certificate authority, and that are all identifiable on the network's network map
Nodes in different business networks can communicate freely without any special configuration.
As of Corda 4, nodes in different compatibility zones cannot communicate out-of-the-box. However, we are investigating mechanisms for cross-compatibility zone and cross-platform communication. You can read more about these efforts here: https://medium.com/corda/some-thoughts-on-compatibility-interoperability-and-integration-e1c6b3af3987.
EDIT: You comment below indicates that you were talking about nodes communicating when running on different ISPs. Yes, nodes can communicate across different IPs as long as they are connected to the internet and not running on a private network.

Can I use two controllers in two different machine

In my scenario, Transaction is between two nodes in two different Machines. Currently am using a controller in Machine A which acts as a notary as well. Can i use two controllers one in each machine?
As discussed here: Corda Controller Node, Corda has no concept of a "controller" node.
Up until Corda 2, each network had a single network map node, no matter how many machines were involved. Each node's configuration file would point to this network map node, using its IP address and port number.
In Corda 3, the network map node was replaced with a server distributing network map files. Details about how to deploy a network across machines in Corda 3 can be found here: https://docs.corda.net/tutorial-cordapp.html#running-nodes-across-machines.
yes, you can setup your case. NotaryChangeFlow (initiating), which should be used to change a state’s notary.

Resources