Trouble sending ether between two users


#1

I’ve tried the following using both the dashboard UI and the swagger UI.

I create two users: “a” and “b”, both with the same password (“pass”) and their faucets on. The responses from GET /bloc/v2.1/users/a is

[“eeb02ddfd867b2c4a5670042fc1e49f3166c7d13”]

The response from GET /bloc/v2.1/users/b is

[“ac467eba2d778389bd5d3b5b69ad0ded3a7c3d91”]

When I try to use the /users/{user}/{address}/send endpoint to transfer ether between the two users, I always get the error: strato error: failed to find account.

Here’s the information on the request from the docker logs command applied to the bloc-api container:

[Error] [BlockApps.Bloc21.Monad:61]             [2017-08-20T23:28:43] UserError "strato error: failed to find account"
POST /bloc/v2.1/users/a/eeb02ddfd867b2c4a5670042fc1e49f3166c7d13/send
  Request Body: {
  "toAddress": "ac467eba2d778389bd5d3b5b69ad0ded3a7c3d91",
  "value": "100000000",
  "password": "pass",
  "txParams": {
    "gasLimit": 123,
    "gasPrice": 345,
    "nonce": 9876
  }
}
  Accept: application/json;charset=utf-8
  Status: 400 Bad Request 0.183134s

The error message in the response body is "strato error: failed to find account". “a” and “b” are the only two users I have this setup.

I have wiped and re-pulled the containers several times. Any suggestions on what I am doing wrong? Any tips on how I could better diagnose the issue?

Thanks!


#2

Sometimes it’s necessary to look at the strato container itself to know what’s up. Can you post relevant strato container logs from the user creation and send request?


#3

Hey, @martyall - thanks for getting back to me so quickly.

I’m not sure if I see logs related to user creation in strato. I definitely see something about user creation in the bloch logs. The last log in the strato container GET /eth/v1.2/account is the only log in strato I see generated by the send request.

I used the docker logs command on both containers. Let me know if there’s another way to look at the strato logs. I’m looking at the registry-aws.blockapps.net:5000/blockapps-repo/silo-strato repository with Image ID of e8eefa276a81

Relevant Strato logs

Starting ethereum-vm
explorerAdvertise is empty or not set, not registering with the blockchain explorer
Becoming strato-api
22/Aug/2017:01:26:25 +0000 [Info#yesod-core] Application launched @(yesod-core-1.4.30-LY0xi3mRxXF78KBpPEy4fm:Yesod.Core.Dispatch ./Yesod/Core/Dispatch.hs:165:11)
172.18.0.11 - - [22/Aug/2017:01:26:26 +0000] "GET / HTTP/1.1" 500 96 "" "curl/7.52.1"
GET /
  Accept: */*
  Status: 500 Internal Server Error 0.001773s
172.18.0.11 - - [22/Aug/2017:01:26:27 +0000] "GET /eth/v1.2/uuid HTTP/1.1" 200 84 "" ""
GET /eth/v1.2/uuid
  Accept: application/json
  Status: 200 OK 0.000486s
172.18.0.13 - - [22/Aug/2017:01:27:06 +0000] "GET /eth/v1.2/account HTTP/1.0" 200 2 "" ""
GET /eth/v1.2/account
  Params: [("address","af76eabe59513c63f732d31d2a81f06d2eb02ff5")]
  Accept: application/json;charset=utf-8,application/json
  Status: 200 OK 0.010809s

Relevant Bloch logs

Using Strato URL: http://nginx/strato-api/eth/v1.2
Using Cirrus URL: http://nginx/cirrus
POST /bloc/v2.1/users/a
  Params: [("faucet","True")]
  Request Body: "pass"
  Accept:
  Status: 200 OK 0.156783s
POST /bloc/v2.1/users/b
  Params: [("faucet","True")]
  Request Body: "pass"
  Accept:
  Status: 200 OK 0.087014s
GET /bloc/v2.1/addresses
  Accept:
  Status: 200 OK 0.001003s
GET /bloc/v2.1/users
  Accept:
  Status: 200 OK 0.001279s
GET /bloc/v2.1/users/a
  Accept:
  Status: 200 OK 0.001341s
GET /bloc/v2.1/users/b
  Accept:
  Status: 200 OK 0.001197s
[Error] [BlockApps.Bloc21.Monad:61]             [2017-08-22T01:27:06] UserError "strato error: failed to find account"
POST /bloc/v2.1/users/a/af76eabe59513c63f732d31d2a81f06d2eb02ff5/send
  Request Body: {"toAddress":"508d921fea7c52533eb1958b22626e6defa298d0","value":10000,"password":"pass"}
  Accept:
  Status: 400 Bad Request 0.126644s

#4

Is your Network Health on Strato Dashboard showing green or yellow? And I would try doing

./strato_run --wipe

And then make sure there is no container running in Docker by:
docker ps

Now try starting the starto by:

./strato_run --stable

Wait a few mins for dashboard to completely pop up and then try sending ether between two users.


#5

Hey @suchit - I really appreciate you getting back to me.

I ran ./strato-run --wipe and made sure there were no containers. I then ran ./strato-run.sh --stable. On a side note, I’m running windows and line 89 of the ./strato-run.sh script there’s a conditional for the --stable flag that uses wget which I had to download separately. The health of the network appears green from the dashboard. I waited 30 min and tried to transfer the ether between two users and still no luck. Same issue.

The only other thing I can think to mention is that I’m using the ip 192.168.99.100 to interact with the containers instead of localhost. I’m doing this because I’m on windows and localhost doesn’t seem to work in that I am not able to access the dashboards or the containers with it.

Is there an event missing in the logs that I posted?


#6

I think if you use developer edition of blockapps, you’re not allowed to send POST request to blockchain regarding sending ether. at least I’m having the same issue (which is not technically an issue, it’s just a limitation in a demo version of a service) when using strato developer edition on azure.


#7

Hi @mahdad.baghani you should definitely be able to send ether between two users. I just tested locally. What kind of machine are you testing on?


#8

Hi @john. I used Microsoft test drive for blockapps strato developer edition, and then I cloned the Xamarin-sdk and ran the tests using Visual studio 2017 on Windows 10. I was able to send ether via dashboard. I will update the post after another try.

–update on 9.11.2017
I wasn’t able to reproduce the problem regarding sending ether between two users using xamarin-sdk and Microsoft test drive. I actually managed to transfer ether between two users.

this time, I cloned https://github.com/blockapps/strato-getting-started, and I edited strato-run.sh to replace “localhost” with my test machine address (cause passing the address as the parameter did not work), and I was able to transfer ether.
So everything seems to be working! thanX!