Corda Transaction is stalled when contacting notary service - corda

I am using Corda Version 1. Transaction is not getting completed when I am running nodes on docker environment. It got stuck after this logs:
Flow logs >> Generating transaction based on new Trade Details.
Flow logs >> Verifying contract constraints.
Flow logs >> Signing transaction with our private key.
Flow logs >> Gathering the counterparty's signature.
Flow logs >> Structural step change in child of Gathering the counterparty's signature.
Flow logs >> Collecting signatures from counter-parties.
Flow logs >> Verifying collected signatures.
Flow logs >> Done
Flow logs >> Obtaining notary signature and recording transaction.
Flow logs >> Structural step change in child of Obtaining notary signature and recording transaction.
Flow logs >> Requesting signature by notary service
Flow logs >> Structural step change in child of Requesting signature by notary service
Flow logs >> Requesting signature by Notary service
I can see this message in the controller logs:
[INFO ] 2017-10-27T07:27:57,024Z [Messaging] messaging.NodeMessagingClient.createQueueIfAbsent - Create fresh queue internal.peers.8Kqd4oWdx4KQGHGNkbLbDP3bxDkm43Gy7NpJqGdiL5G2PwRdVu9dngMkJkp bound on same address
[WARN ] 2017-10-27T07:29:57,111Z [Messaging] messaging.NodeMessagingClient.sendWithRetry - Reached the maximum number of retries (3) for message ClientMessageImpl[messageID=0, durable=true, address=internal.peers.8Kqd4oWdx4KQGHGNkbLbDP3bxDkm43Gy7NpJqGdiL5G2PwRdVu9dngMkJkp,userID=null,properties=TypedProperties[platform-version=1,corda-vendor=Corda Open Source,release-version=1.0.0,platform-topic=platform.session,session-id=0,_AMQ_DUPL_ID=0efb502e-15f6-4b0a-bdf9-8296571f228f]] redelivery to internal.peers.8Kqd4oWdx4KQGHGNkbLbDP3bxDkm43Gy7NpJqGdiL5G2PwRdVu9dngMkJkp

I have solved this problem by using actual host machine IP address in p2pAddress while creating node container.
It was mapped as localhost in p2pAddress and i have already exposed container ip with hostmachine ip. therefore ideally this should not be the issue, however it's creating issue while signing notary service if we are using localhost. many thanks for support.

Related

Single Node Artifactory - deploy using AWS ECS fails with current node still available

Maybe Im just approaching this wrong.
Single Instance mode (non-HA)
AWS-RDS Postgres Database
Deploying via ECS
Currently have Artifactory-Pro building a docker container and deploying to ECS via CI/CD. The initial deploy goes fine. Everything stands up, database migrations occur, and the instance runs.
However, when doing an update to the task, a new task spins up. It then adds entries to the access_topology with the new container-ip and unique node-id, but they stay unhealthy. The logs just then bomb out with failure messages (below - due to existing heartbeat of other node).
If I first stop the running task, and start a new task, it spins up properly (Probably due to heartbeat loss).
In typical ECS world, the new task is spun up till its deemed healthy, and then the older task is killed off.
Either scenario creates orphaned NODE records that stay healthy -- trying to also figure out how to garbage collect on those and purge.
Any thoughts on this?
Errors are below – it appears that it wont properly join because of an active heartbeat, and not being HA. However, I want this node to stand up so I can topple the other. Thanks –
Cluster join: Successfully joined jfmd#01es5dmfhar6gcy5abyj4rwpkc with node id ip-10-10-3-248.us-XXXX-1.compute.internal
Application could not be initialized: Current Artifactory node last heartbeat is: 1607609142483. Stopping Artifactory since the local server is running as PRO/OSS but found other servers in registry
Error occurred when refreshing domain cache all domain endpoint failed : Fetch domains from http://localhost:8046/distribution/api/v1/events/domains failed (returned 404), Fetch domains from http://localhost:8046/artifactory/api/events/domains failed (returned 404), [domain_client]"
Retry 20 Elapsed 16.84 secs failed: Couldn't access another access peer. [localhost:8046]. Status code: UNAVAILABLE. HTTP status code 503
Status code: UNAVAILABLE. HTTP status code 503
1607609184634,invalid content-type: text/plain; charset=utf-8
1607609184634,"headers: Metadata(:status=503,content-type=text/plain; charset=utf-8,content-length=19,date=Thu, 10 Dec 2020 14:06:24 GMT)"
1607609184634,DATA-----------------------------
1607609184634,Service Unavailable. Trying again
This is not possible without an HA configuration. Since this is not an HA configuration, the application will not start up if there is another application still "alive". In this case, "alive" is defined as having written the heartbeat within X amount of seconds (I believe this is 10 by default).

What will happen when Corda controller node stops? Can other nodes still communicate?

I am using release-v1 of Corda.
My app has four nodes - Controller (provides network map service and validating notary service), A, B and C. Following are the flows defined in the app -
Flow 1: A sends a trade request to B and C
Flow 2: B approves the trade request, self-signs it, gets signature from A and closes the trade.
What will happen when the Controller node stops or disconnects when one of the above flows is initiated?
You should be using Corda 3+ (preferably Corda 4) and not v1.
If the node providing the Notary service went down, then any transactions requiring a notaries signature will not finish until it comes back up. They will remain suspended until the Notary restarts. Once it does, the flows that have been suspended will wake up and continue running.
Not 100% sure what happens if the network map goes down. I think the nodes will continue to work with each other since they have a cache of the acceptable nodes to communicate with.

Flow is hanging at Collecting counterparties signature in Corda

I am trying to run Example Cordapp in two AWS instances. With Notary and PartyA in 1st Instance and PartyB and PartyC in 2nd Instance.
I followed the steps here,
Corda nodes: how to connect two independent pc as two nodes?
In the conf file of,
Notary and PartyA - I have edited the P2P address to reflect the PrivateIP of Instance 1
PartyB and PartyC - I have edited the P2P address to reflect the PrivateIP of Instance 2
With the above conf files, I ran the Network Bootstrapper jar in Instance 1 and copied the folders PartyB and PartyC to Instance 2 and started the Notary and Parties 1 by 1 respectively in the corresponding Instances.
All nodes started succesfully and when I try to execute a IOU flow from PartA(in Instance 1) to PartyC(in Instance2), it is pausing at Collecting counterparties signature step without proceeding further. Below is what I see in PartyA's Console,
Fri Nov 30 08:39:10 UTC 2018>>> flow start ExampleFlow$Initiator iouValue: 50, otherParty: "O=PartyC,L=Paris,C=FR"
Verifying contract constraints.
Signing transaction with our private key.
Gathering the counterparty's signature.
Collecting signatures from counterparties. (hanging here and not proceeding further)
When I tried to look at the log information in NodeA, it displays as below.,
[INFO ] 2018-11-30T08:39:10,077Z [main] messaging.RPCServer.start - Starting RPC server with configuration RPCServerConfiguration(rpcThreadPoolSize=4, reapInterval=PT1S, deduplicationCacheExpiry=PT24H) {}
[INFO ] 2018-11-30T08:39:10,115Z [Thread-0 (ActiveMQ-client-global-threads)] bridging.BridgeControlListener.processControlMessage - Received bridge control message Create(nodeIdentity=DLHBP432vnpLNpCNwGQJjx3hd6RDz4LiYxmZJo757W8Hbw, bridgeInfo=BridgeEntry(queueName=internal.peers.DL9tRWQ867M3tni7KRqkXEJKPrkyW5KVj6fyRyDBHGaGA6, targets=[[2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013], legalNames=[O=PartyC, L=Paris, C=FR])) {}
[INFO ] 2018-11-30T08:39:11,072Z [nioEventLoopGroup-2-2] netty.AMQPClient.nextTarget - Retry connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:12,171Z [nioEventLoopGroup-2-3] netty.AMQPClient.operationComplete - Failed to connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:14,172Z [nioEventLoopGroup-2-4] netty.AMQPClient.nextTarget - Retry connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
[INFO ] 2018-11-30T08:39:15,175Z [nioEventLoopGroup-2-1] netty.AMQPClient.operationComplete - Failed to connect to [2001:0:9d38:953c:3c:ce3:cbd9:3c59]:10013 {}
I could able to ping between instances with the private IP's without any issues. Can someone help me where am I missing things.
Thanks in advance.
This issue was caused by a firewall on the node's machine that was preventing the node's messages from reaching the counterparty nodes.
You need to open:
Outbound ports for your node's P2P address
Inbound ports for the other nodes' P2P addresses
On a large network, this can mean opening many inbound ports, which can be an issue for some companies' security policies. This issue is addressed by the Corda Firewall.

Error during creation of a new transaction in Corda V2

I encountered one error when I created a new transaction with Corda V2.0, from the sender's server log, it shows below error
[WARN ] 2018-05-15T09:34:47,366Z [Messaging] messaging.NodeMessagingClient.sendWithRetry - Reached the maximum number of retries (3) for message ClientMessageImpl[messageID=0, durable=true, address=internal.peers.4qWch9xxxV,userID=null,properties=TypedProperties[platform-version=2,corda-vendor=Corda Open Source,release-version=2.0.0,platform-topic=platform.session,session-id=0,_AMQ_DUPL_ID=dd1d6efb-dd71-4d34-9686-fecdb8d72671]] redelivery to internal.peers.4qWchxxxEmV
In recipient's log, we can see the transaction's dependency(attachment) is retrieved and stored successfully but there is no information about transaction's process(I think this log information should be provided from Corda by default).
We are using raft notaries cluster and I didn't find any transaction information in 3 notaries logs.
So we are not sure where is the root cause for that messaging error. Anyone can help?
In Corda 3, there is a bug which means that after rebooting a Raft notary cluster, the Raft cluster ends up partitioned with multiple leaders and it no longer services client requests.
You can track the solution to this issue on Corda's JIRA board: https://r3-cev.atlassian.net/browse/CORDA-1527.

BizTalk Message Queued (awaiting processing)

I am sending a message to BizTalk receive location and it is stuck somewhere. Querying the Tracked Message events gives me following:
And when i query all in-progress service instances, i finding my orchestration in state "Ready to run":
The Service details tells me that the message was queued and awaits processing:
In a topic here was suggested that "The message is in an ordered delivery scenario when the preceding message is being retried by the ordered delivery send port."
The problem is that i don't have ordered delivery in my applications.
Thank you for any advice!
The Orchestration will be configured against a Host - check that the Host has a Host Instance that is in the running/started state.

Resources