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.
Related
I am trying to check the HTTP network map protocol in the sample cordapp example, I have used network bootstrapper to generate node info files. But I need to check the Rest API end points mentioned in the docs: /network-map/publish.
Is it necessary to set up the network map for this? If required,I am not able to get the corda-network map jar file for the community edition. How to access those API endpoints ?
The cordapp samples available in the samples repository uses a locally bootstrapped network. The network bootstrapper is used for this purpose to generate the node-info and the certificates of the network participants. It's a quick and easy way to set up a static Corda network for the purpose of local deployment and testing.
It doesn't have a network map service. The node-info files of each participant is dropped into the additional-node-info folder of the nodes which serves as the network map cache for the node.
The REST end-points you mentioned are available in a real network map service running as part of a dynamic Corda network setup (mostly) used for production deployments.
R3 does not provide a community version of the network map.
However, there is a commercial offering called CENM (https://docs.corda.net/docs/cenm/1.2.html). It's not just a Network Map but also takes care of other aspects of Network Management like Identity and Signing.
In case you are looking for an open-source network map you could try out Cordite Network Map (https://marketplace.r3.com/solutions/cordite-network-map) developed by one of our partners.
So i've read several articles & looked through Openstack docs for the definition of a node.
Node
A Node is a logical object managed by the Senlin service. A node can
be a member of at most one cluster at any time. A node can be an
orphan node which means it doesn’t belong to any clusters.
Node types
According to the Oracle docs, there are different node types (controller node, compute node etc.). What I'm confused about is if a single node is a single physical computer host. Does that mean I can still deploy multiple nodes with different node types on the same host?
Node Cluster
I read that a cluster is a group of nodes. How could the cluster for the controller node look like?
CONTROLLER NODE
The controller node is the control plane for the OpenStack
environment. The control pane handles identity (keystone), dashboard
(Horizon), telemetry (ceilometer), orchestration (heat) and network
server service (neutron).
In this architecture, I have different Openstack services (Horizon, Glance etc.) running on one node. Can I conclude from this picture whether it's part of a cluster?
Ok, so a node in the context of the Openstack documentation is synonymous to host:
The example architecture requires at least two nodes (hosts)
from the sentence on the page: https://docs.openstack.org/newton/install-guide-ubuntu/overview.html
You already found out that what a node is in the context of Senlin.
Node types: the nodes referred here are the physical hosts, like in the rest of the Openstack documentation. The node type is determined by the services running on the host. Usually you can run serveral services on a host.
In Openstack the word cluster is only used to referred to service collection managed by Senlin. So usually no, these services need not form a cluster.
I followed the documentation from docs.corda.net to setup 3 node dev corda network on a single machine.
My goal is to setup multinode production level corda network that involves multiple physical machines. Can someone please help me how can I achieve this?
I want to learn about the corda network capabilities, its different configuration modes etc etc.
I've already setup 3 node dev corda network on a single machine
There are two approaches with which you can achieve the above
Using the network bootstrapper , refer : https://docs.corda.net/network-bootstrapper.html
Using the Network Map Service
For a production level it is preferable to use the network map service as you can manage the nodes dynamically. This is not possible with the networkbootstrapper as the nodes informations are shared within the nodes during the boostrapping which cannot be changed
For NetworkMap Service you can refer Cordite NetwokMapService.
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.
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.