Now it is possible to download and run Ergo with one command in Linux.
Basic command for non-mining full-node is:
curl -s https://raw.githubusercontent.com/ergoplatform/ergo/master/ergo-installer.sh | sh -s -- --mode=full --app-dir=~/ergo --api-key=MY_API_KEY
just change folder where the node is to be installed (–app-dir, --app-dir=~/ergo in our example), and set your API key instead of MY_API_KEY in the example
The command above is downloading and running UTXO-storing and non-mining full node. To have a mining full node, run the script with --mode=mining flag:
curl -s https://raw.githubusercontent.com/ergoplatform/ergo/master/ergo-installer.sh | sh -s -- --mode=mining --app-dir=~/ergo --api-key=MY_API_KEY
and then simply go to 127.0.0.1:9053/panel for initializing the wallet and then running miners with the mnemonic provided!
seems to me that till one of the 2 options (restore or initialize wallet) github .com/ergoplatform/ergo/wiki/Set-up-a-full-node#initialize-wallet everything should be managed from a script, also if that secret stuff is only for local encryption why isnt automatically generated and installed in the config? I dont see where is the interest of the user in setting that up.
also why is created an “Ergo” folder in the home path instead of “.ergo”? this isnt very nice.
PS seems i cant use more than 2 links, pls change this discourse setting XD
I do a little script to speed things up
random=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32})
blake_random=$(curl -sX POST "http://127.0.0.1:9053/utils/hash/blake2b" -H "accept: application/json" -H "Content-Type: application/json" -d "\"$random\"");
echo "
ergo {
directory = \${ergo.directory}"/.ergo"
node {
mining = false
}
wallet.secretStorage.secretDir = \${ergo.directory}"/wallet/keystore"
}
scorex {
restApi {
apiKeyHash = $blake_random
}
}
" > ~/.ergo/ergo.conf
echo "restart ergo.jar and put "$random" in 'Set API key' in http://localhost:9053/panel"
(im using the ~/.ergo folder so all you can do is change that if you use ~/Ergo one)
The script is installing the node into the ~/Ergo by default, which is indeed pretty strange name for *nix systems. Thus before script update it is better to run it with --app-dir setting.
on API secret key, the script is getting API key via parameters and setting its hash into config automatically. API key is needed in order to prevent access to certain parts of the API (such as /wallet methods) in case of e.g. unintended API exposure or against malware etc.
2 - strange on ubuntu 16 didn’t work, (on 19 does) anyway also daemon is needed right?
3 - yes, I see, the thing is that I don’t understand why the user have to set that up, I guess trying to automate it that is quite tricky, but I’m not sure about that being the real reason.
Script ran but got an error and empty application.conf created.
sed: -e expression #1, char 18: unknown option to `s'
See transcript below
zbox@vb:~$ curl -s https://raw.githubusercontent.com/ergoplatform/ergo/master/ergo-installer.sh | sh -s -- --mode=full --app-dir=~/ergo --api-key=MY_API_KEY
Ergo node with config file will be installed into '/home/zbox/Ergo' directory and will be named as '~/ergo' and has API key 'MY_API_KEY'.
Ergo directory '/home/zbox/Ergo' already exists.
Latest known Ergo release: v3.1.5, downloading it to /home/zbox/Ergo/ergo.jar with overwrite...
Ergo was downloaded to /home/zbox/Ergo/ergo.jar
Executing ergo node to obtain API key hash..................
API key hash obtained: 0e5751c026e543b2e8ab2eb06099daa1d1e5df47778f7787faab45cdf12fe3a8
Stopping Ergo node with PID=3784....
Stopped.
sed: -e expression #1, char 18: unknown option to `s'
Config file was written to /home/zbox/Ergo/application.conf
Starting node......................
Node started.
To stop the node later, use: kill 3926
zbox@vb:~$
zbox@vb:~$ cat Ergo/application.conf
zbox@vb:~$ cd Ergo/
zbox@vb:~/Ergo$ ls -l
total 79936
-rw-rw-r-- 1 zbox zbox 0 Dec 24 21:06 application.conf
-rw-rw-r-- 1 zbox zbox 80026495 Dec 24 21:06 ergo.jar
-rw-r--r-- 1 zbox zbox 1820326 Dec 24 21:08 ergo.log
zbox@vb:~/Ergo$
yes, I see, the thing is that I don’t understand why the user have to set that up, I guess trying to automate it that is quite tricky, but I’m not sure about that being the real reason.
You mean why user needs to put API key into script parameters? What are simpler options then?
I mean that the thing could be setup in the script like the rest, generate a random secret, put the blake(secret) in the conf file and the secret in the interface, isnt that quite better? (I only see technical issue in this, at least using the API). Also atm you have to input the key every time on the interface, couldt this be handled by cookies or something (or better having an option to disable this if im on my local net)? I mean this is not the end of the planet but not really comfortable.
so user can actually use the API key to log in, but yes relaxation would be the best, honestly users shouldnt even care about the api key hash, that’s only to be set in the conf, he only cares about the api key to connect via interface, /panel is ok, i dont really care, the important is adding also a line at the end with something like: “connect to http://localhost:9053/panel to interact with node”
I have tested the fixed code and seems to work on 19.10. I’ll check and revert for 16.04 later.
The directory used is /tmp. Perhaps it will be better to put it in home or let user specify.
Good day! I use the line from the theme header to install ergo on linux, enter the api-key which I made on windows OS and get an endless download of the api-key in node. Please, help! I tried to enter both Api-key itself and Api-key hash.