Errors during Local Installation
#
API cannot connect to chainIf there is an error upon starting the API with the message "readiness: MultiChain connection failed", it's most likely because the blockchain was not started properly.
If you see the following error message:
[2018-10-03T12:13:23.950Z] INFO (TruBudget/16981 on servername): Connecting to MultiChain node protocol: "http" host: "127.0.0.1" port: 8000 username: "multichainrpc" password: "password"Register fastify endpointschema id ignored er58c69eg298c87e3899119e025eff1fschema id ignored fe9c2b24ade9a92360b3a898665678ac[2018-10-03T12:13:24.318Z] INFO (TruBudget/16981 servername): server is listening on 8080[2018-10-03T12:13:24.585Z] WARN (TruBudget/16981 servername): "readiness: MultiChain connection failed"[2018-10-03T12:13:24.586Z] ERROR (TruBudget/16981 servername): MultiChain connection/permissions not ready yet
then locate the running instances of the blockchain
ps aux | grep multichain
which will produce an output similar to this:
root 17272 0.1 0.7 1042828 59520 ? SLl 12:17 0:11 multichaind -txindex TrubudgetChain -port=7447 -autosubscribe=streams
Then shutdown the process with the kill
command with the first number after "root" (in this case 17272):
kill 17272
After this, start the blockchain again using the steps described in the guide (including the exports of the variables!).
#
Cannot start nginxIf you get the following error
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)nginx: [emerg] still could not bind()
it means that there is already an instance of nginx running and using the port 80. To stop the other process (if it's not needed), list the nginx processes
ps aux | grep nginx
which will produce an output similar to this one:
root 23979 0.0 0.1 116656 8660 pts/1 S 14:04 0:00 nginx: main process nginx -g daemon off;www-data 23981 0.0 0.0 116984 2980 pts/1 S 14:04 0:00 nginx: worker processwww-data 23982 0.0 0.0 116984 3020 pts/1 S 14:04 0:00 nginx: worker process
Only the root process needs to be shut down. This is done via
nginx -s stop
#
Standard Welcome Page of nginx showingIf you enter the IP address of your machine and you are presented with the standard welcome screen of nginx instead of the Trubudget app, you need to modifiy the /etc/nginx/nginx.conf
to disable the configuration of "sites-enabled".
First, login as root and open the nginx.conf file with your editor of choice:
sudo sunano /etc/nginx/nginx.conf
Then locate the line include /etc/nginx/sites-enabled/*
and disable it by putting a pound sybol at the beginning of the line:
#include /etc/nginx/sites-enabled/*;include /etc/nginx/conf.d/*.conf;
#
Node JS Permission IssueIf you receive an error running npm install
, that looks like the following:
726 verbose stack Error: sodium-native@2.1.6 install: `node-gyp-build "node preinstall.js" "node postinstall.js"`726 verbose stack spawn ENOENT726 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:48:18)726 verbose stack at ChildProcess.emit (events.js:180:13)726 verbose stack at maybeClose (internal/child_process.js:936:16)726 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)727 verbose pkgid sodium-native@2.1.6728 verbose cwd /root/trubudget/api729 verbose Linux 4.15.0-1025-azure730 verbose argv "/usr/bin/node" "/usr/bin/npm" "install"731 verbose node v9.11.2732 verbose npm v5.6.0733 error file sh734 error code ELIFECYCLE735 error errno ENOENT736 error syscall spawn737 error sodium-native@2.1.6 install: `node-gyp-build "node preinstall.js" "node postinstall.js"`737 error spawn ENOENT738 error Failed at the sodium-native@2.1.6 install script.738 error This is probably not a problem with npm. There is likely additional logging output above.739 verbose exit [ 1, true ]
Check the global node_modules (usr/lib/node_modules/
) permissions.
#
Unable to lock the administration direcectoryIf you see the following error message
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
you need to delete the lock files (as root):
rm /var/lib/apt/lists/lockrm /var/cache/apt/archives/lockrm /var/lib/dpkg/lock