Question

Sockanosset on Fri, 24 Nov 2017 12:09:07


I've setup Azure’s Ethereum Consortium Blockchain.

Using MetaMask with two wallets I can send/receive ether between two wallets fine. This means the Azure private network is working okay.

Then I created mobile apps on iOS and Android using JSON RPC API to communicate.  These apps send/receive ether on common test networks fine, so the mobile apps are working successfully. 

When I send ether from MetaMask to the mobile apps it appears and , the server (geth.log) shows "Submitted transaction" without errors but the apps never get a final confirmation, the transaction is always in a pending state.

When I send from the mobile app to each other or to MetaMask, the server (geth.log) shows "Submitted transaction" without errors but I never get a final confirmation. And the other wallet never receives it.

The server logs needs to convey why its not transmitting the ether or confirming the transaction and/or Azure should provide a working example of mobile apps to help explain Azure's implementation requirements


Sponsored



Replies

Microsoft Azure Blockchain Team on Sun, 26 Nov 2017 21:37:26


Hi,

The private consortium network setup uses a non-standard Ethereum NetworkID (and matching ChainID in the genesis block) that you are able to specify at deployment time.  Can you check that the mobile app is using the chainID that you specified when deploying the network?  This is needed per EIP155 You can also look this up by running admin.nodeInfo and checking the protocols->eth->network field.  Let us know if this resolved the issue and thanks for the suggestion about providing a sample mobile app, we are considering more samples to help our users while implementing solutions.

EPI155: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md 

Thanks,


Microsoft Azure Blockchain Team


Sockanosset on Sun, 26 Nov 2017 23:49:52


Yes, my Azure chain has ETHEREUMNETWORKID 72 and I am specifying that as the chainID in the mobile app. You can tell from this part of my first post "... the server (geth.log) shows "Submitted transaction" without errors"  If I had been using an incorrect Chain/NetworkID I would not have gotten that far.

Okay, what are next steps towards using ECB successfully with custom apps? Is it possible to have eth.log be more verbose? Or when will we see mobile apps to illustrate how the server was implemented? Thank you,

Microsoft Azure Blockchain Team on Mon, 27 Nov 2017 04:20:14


I wanted to make sure to eliminate that as a possible cause.  You can change the log level by changing the value of "VERBOSITY" in the start-private-blockchain.sh on each node (VM) and then restarting geth by running the command in /etc/rc.local.  Setting it to 6 might provide more insight into what is going on.

I do not have a timeframe that I can share at this time w.r.t. sample mobile apps, sorry.

Best,

 

Sockanosset on Sun, 03 Dec 2017 10:53:52


I'll need to know ...

a. How to login to each node

b. Whether this change must be made on each node

c. What is the restart sequence? How do I know which node to start first and wait for it to complete?

Thank you,

Microsoft Azure Blockchain Team on Mon, 04 Dec 2017 01:53:42


Most of the information is in our guide.  I've provided guidance below:

a. There is a link to ssh to the first TX node in the deployment output (info in the guide).  It's called "SSH_TO_FIRST_TX_NODE".  If you used ssh instead of password for auth during deployment time, then you have to ensure you have the corresponding ssh key on the machine that you will ssh from and copy it over to each VM that you want to ssh to (e.g. after getting onto the first TX node, copy the ssh key to the TX node, then ssh to a mining node and so on).

b. You can start by making this change on one of the TX nodes and one of the MN nodes and observe how the transaction is being processed both while receiving and queueing and also during mining.

 c. Kill the process "geth..." and then run the command contained within /etc/rc.local (you may need to sudo su to access this file)

Hope this helps identify the issue.