Issues in Running the nodes on separate machines


(Mullapudi Raghu Ram) #1

I am trying to run the trader-demo nodes on three different machines.Notary node is succesfully started but the other nodes are not getting started.I had kept network mapping address for the node a and node b as the ip address of the machine where the notary node was running and port on which the notary node is running.But only the notary node is started but the others nodes are not started.why?
@joeldudley

node.conf of notary

artemisAddress="ipaddress of 1st machine:10002"
basedir=notary
extraAdvertisedServiceIds="corda.notary.validating"
myLegalName=Notary
nearestCity=London
rpcUsers=[]
webAddress="ipaddress of 1st machine:10003"

node.conf of nodea

artemisAddress="ipaddress of 2nd machine:10004"
basedir=nodea
extraAdvertisedServiceIds=""
myLegalName="Bank A"
nearestCity=London
networkMapAddress="ipaddress of 1st machine:10002"
rpcUsers=[]
webAddress="ipaddress of 2nd machine:10005"

node.conf of nodeb

artemisAddress="ipaddress of 3rd machine:10006"
basedir=nodeb
extraAdvertisedServiceIds=""
myLegalName="Bank B"
nearestCity="New York"
networkMapAddress="ipaddress of 1st machine:10002"
rpcUsers=[]
webAddress=ipaddress of 3rd machine:10007"


(Clinton Alexander) #2

Hello @mullapudi_raghuram. When you say the other two nodes are “not getting started” do you mean they exit with a non-zero return code instead of fully initialising, or do you mean something else?

If you could send the log output of all three servers that would be very useful to help determine what the problem is.


(Wawrzyniec (Wawrzek) Niewodniczański) #3

Dear @mullapudi_raghuram,

Could you please also give a bit more information about underling OS and network. Any chance of firewall between them? I guess they are in one subnet, are they? Any security hardening modules as SELinux running on those machines?


(Mullapudi Raghu Ram) #4


Can any one Post a working example for running nodes on separate machines in windows?
(Mullapudi Raghu Ram) #5

@wawrzek underlying OS network is windows 7.Yes we are in a subnet connected in LAN.i had enabled ports on the notary machine in firewall


(Wawrzyniec (Wawrzek) Niewodniczański) #6

My knowledge of Windows is limited, and not sure if that’s a problem for Corda, but it seems that all nodes listen on localhost rather then external IP address. @Clinton_Alexander has more Windows experience and he can comment on it.


(E Lim) #7

Is there a way to config and expose all nodes as public IP to see if node A and B can reach the notary? Copy @Liquidity


(Akshatha) #8

@mullapudi_raghuram
Any updates on the issue that you have raised??
Even I am trying to do the same but facing the same issues as you. Please share the solution if you have found any.


(Mullapudi Raghu Ram) #9

@Akshatha, the problem had been resolved.please refer to Roger Willis answer at Can any one Post a working example for running nodes on separate machines in windows?

it will fix the problem.If not i will post another example with clear explanation.


(Akshatha) #10

@mullapudi_raghuram
This isn’t working for me. Can u post the other example please


(Mullapudi Raghu Ram) #11

@Akshatha can u post the configuration of your nodes (all nodes) so that i can correct them.and also post the exact issue you are facing


(Akshatha) #12

Controller’s configuration

artemisAddress="system1’s IP:10002"
basedir=controller
extraAdvertisedServiceIds="corda.notary.validating"
myLegalName=Controller
nearestCity=London
rpcUsers=[]
webAddress=“localhost:10003”

Node A’s configuration

artemisAddress=“system1’s IP:10006"
basedir=nodeb
extraAdvertisedServiceIds=”"
myLegalName=NodeB
nearestCity="New York"
networkMapAddress="system1’s IP:10002"
rpcUsers=[
{
password=test
permissions=[]
user=user1
}
]
webAddress=“localhost:10007”

Node B’s configuration

artemisAddress=“system2’s IP:10006"
basedir=nodeb
extraAdvertisedServiceIds=”"
myLegalName=NodeB
nearestCity="New York"
networkMapAddress="system1’s IP:10002"
rpcUsers=[
{
password=test
permissions=[]
user=user1
}
]
webAddress=“localhost:10007”

Node C’s configuration

artemisAddress=“system2’s IP:10008"
basedir=nodec
extraAdvertisedServiceIds=”"
myLegalName=NodeC
nearestCity="San Francisco"
networkMapAddress="system1’s IP:10002"
rpcUsers=[
{
password=test
permissions=[]
user=user1
}
]
webAddress=“localhost:10009”

System1 contains - controller and Node A
System2 contains - Node B and Node C

Now only node A is getting started up but B and C nodes are not getting started without controller in system2


(Akshatha) #13

@mullapudi_raghuram
please do refer to these configurations


(Mullapudi Raghu Ram) #14

@Akshatha all the configuration are absolutely correct.I think problem is u have to open port 10002 in system1 as it is the controller node,so that node b and nodec can communicate to that node via that port.And also open all the ports which are used for communicating.If it does not work please let me know.


(Wawrzyniec (Wawrzek) Niewodniczański) #15

Small suggestion. If you have nodes on multiply machines I suggest to decide one port for Artemis e.g. 10002 another one for webapp e.g. 10001 that makes things easier.


(Deepak Kumar Purohit) #16

My Setup as suggested in https://github.com/corda/cordapp-template#running-the-nodes-across-multiple-machines

Machine 1: controller, nodea, runnodes, runnodes.bat
Machine 2: nodeb, nodec, runnodes, runnodes.bat
You must now edit the configuration file for each node, including the controller. Open each node’s config file ([nodeName]/node.conf), and make the following changes:

Change the artemis address to the machine’s ip address (e.g. artemisAddress=“10.18.0.166:10006”)
Change the network map address to the ip address of the machine where the controller node is running (e.g. networkMapAddress=“10.18.0.166:10002”) (please note that the controller will not have a network map address)
Each machine should now run its nodes using runnodes or runnodes.bat files. Once they are up and running, the nodes should be able to place purchase orders among themselves in the same way as when they were running on the same machine.

But My nodeb, nodec are not getting UP .

Please Respond.


(Joel Dudley) #17

Hi @depurohi,

When you say nodes B and C are not “getting up” - do you mean there’s an error when you try and run the nodes? Or just that they can’t see node A?


(Deepak Kumar Purohit) #18

When we do runnodes from Noda B and Node C, 2 JVM instances gets triggered .
This is one of my nodes.

After this it should say something like “Node started up and registered in 5.007 sec”. But its not going forward

So we suspect that as we removed “Controller” part in the in build.gradle its showing this kind of behavior.

Thanks


(Joel Dudley) #19

@depurohi And both nodes start up fine when you run them all on the same machine?


(Deepak Kumar Purohit) #20

Yes @joeldudley , It runs absolutely fine if I run all nodes in a single machine.