@art You're right, that github issue further implies that the files needed to run the
wallet_api_plugin aren't even in that docker container. I've found no other explanation or fix for why that PR was created; I'd imagine it solves some other problem, but the consequence is that running that provided docker container does not provide a wallet that will talk to the nodeos service.
There's a few ways to solve this problem, but I'll offer what I think is the simplest one. When you look at setting up a dev environment, there are a few options give. Roughly the categories are: use docker or build from source. But within the Docker category, there are also 2 options: one (the one in that tutorial you're working with) is a pre-packaged docker container (which is now broken as of 1.2.0). The other is to build the docker container your self. Instructions here.
Now, for educational purposes, I highly recommend playing around with that entire set of instructions so you understand the tools better (I've certainly learned a lot from doing so...), but I'll give the short/extracted version here:
- See if the docker container you already downloaded is running and stop it if it is
docker stop <CONTAINER_ID>
- Rather than use the provided container, which used to run nodeos, keos, and a plugin that would allow the 2 to talk, we're going to build and start a docker container that is running both in such a way that they can communicate:
git clone https://github.com/EOSIO/eos.git
docker volume create --name=nodeos-data-volume
docker volume create --name=keosd-data-volume
docker-compose -f <PATH_TO_CLONED_EOS_REPO_DIR>/Docker/docker-compose.yml up -d
Finally, to access cleos from anywhere, you can add this alias to your .bashrc / .profile script (as well as running it at the command line to make it immediately active). Remember to replace PATH_TO_CLONED_EOS_REPO:
alias cleos='docker-compose -f <PATH_TO_CLONED_EOS_REPO>/Docker/docker-compose.yml exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'
- Finally, you can now work with the wallet. The only thing I haven't figure out yet is that the instructions in that tutorial say to create a wallet, which (if you provide no explicit name) will create the "default" wallet. It appears that that default wallet gets created automatically somewhere in this process. So you don't need to do that step, but that first step also gave you the password to that default wallet, so that's a problem...
What I've done is use an explicit wallet name, which means that every time you're accessing the wallet, you'll need to provide the name like
--name test_wallet. Type
cleos wallet --help to see how and where to use the
The other change in this release is that you need to add
--to-console to wallet commands to see the output.
I found this post, which first walks you through a shorter version of my instructions above, but those instructions are a month old (at the time of this writing, and I have not verified that they work with 1.2.2) and then beautifully walks you through the wallet create process, and I've posted an updated version of the author's wallet/users creation process in script form with the 2 tweaks mentioned above for clarity. You can find that in my github repo here
Steem version of this post with a little more instruction here