nuriel77 / hornet-playbook Goto Github PK
View Code? Open in Web Editor NEWAnsible Playbook for Hornet IOTA Full Node
License: MIT License
Ansible Playbook for Hornet IOTA Full Node
License: MIT License
Running on a freshly put on Raspberry Pi 4 (8GB) with Ubuntu Server 20.04.2 64 Bit, the Hornet installation will fail at the Task build hornet image.
TASK [hornet : build hornet image, this can take a moment...] ***************************************************************************************************************************************************************************************************************************************************************
FAILED - RETRYING: build hornet image, this can take a moment... (3 retries left).
FAILED - RETRYING: build hornet image, this can take a moment... (2 retries left).
FAILED - RETRYING: build hornet image, this can take a moment... (1 retries left).
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: docker.errors.APIError: 500 Server Error for http+docker://localhost/v1.41/build?t=gohornet%2Fhornet%3A1.0.1&q=False&nocache=False&rm=True&forcerm=True&pull=False&dockerfile=docker%2FDockerfile.arm64&buildargs=%7B%22ARCH%22%3A+%22ARM64%22%2C+%22TAG%22%3A+%221.0.1%22%7D&networkmode=host: Internal Server Error ("Cannot locate specified Dockerfile: docker/Dockerfile.arm64")
fatal: [localhost]: FAILED! => {"attempts": 3, "changed": false, "msg": "An unexpected docker error occurred: 500 Server Error for http+docker://localhost/v1.41/build?t=gohornet%2Fhornet%3A1.0.1&q=False&nocache=False&rm=True&forcerm=True&pull=False&dockerfile=docker%2FDockerfile.arm64&buildargs=%7B%22ARCH%22%3A+%22ARM64%22%2C+%22TAG%22%3A+%221.0.1%22%7D&networkmode=host: Internal Server Error ("Cannot locate specified Dockerfile: docker/Dockerfile.arm64")"}
Hi Nuriel77,
More a question than a issue.
How to manage login/password for wallet connection (/api)?
Thx
Hi Nuriel77, thanks for your contributions.
Installed Hornet node on microk8s cluster Rpi4. Works fine, except if setup autopeering. The phase autopeering never finish, (few thousands of seconds in livenessprobe option in config file) . Do you have any chance to think about it? Any idea about to solve this issue?
Thanks in advance!!!
There is a problem connecting to MQTT.
This code
`async function run() {
const {
ClientBuilder
} = require('@iota/client');
// client connects to a node that has MQTT enabled
const client = new ClientBuilder()
.node('https://api.thin-hornet-1.h.chrysalis-devnet.iota.cafe')
.build();
client.subscriber().topics(['milestones/confirmed', 'messages']).subscribe((err, data) => {
console.log(data);
// To get the message id from messages `client.getMessageId(data.payload)` can be used
})
await new Promise(resolve => setTimeout(resolve, 1500));
// unsubscribe from 'messages' topic, will continue to receive events for 'milestones/confirmed'
client.subscriber().topics(['messages']).unsubscribe((err, data) => {
console.log(data);
})
}
run()`
connects to the devnet node, but if I replace with my server's node, it fails with this error:
[Error: SubUnsubTask error: Panic("Internal error: failed to subscribe to topics: MqttConnectionNotFound\n\n 0: \n 1: \n 2: \n 3: \n 4: start_thread\n 5: clone\n")]
If I change the node to something like 'http://localhost:14265',then it works nicely, so I think there is a problem redirecting to the API.
I was following the instructions for setting up a private tangle. When i reached the step where I had to bootstrap the coordinator, it failed due to the tangle.db file not being accessible.
Parameters loaded:
{
"coordinator": {
"address": "NJKRULRSYBV9FOATKCNFCCMEFSMRVWPWHMZARQKEOGJFZWC9WWQGGWGARMMTWRIMWAZBHEFRNMVXZ9RK9",
"checkpoints": {
"maxtrackedtails": 10000,
"maxtrackedtransactions": 10000
},
"intervalseconds": 60,
"merkletreedepth": 20,
"merkletreefilepath": "coordinator/tree",
"milestonemerkletreehashfunc": "BLAKE2b-512",
"mwm": 5,
"securitylevel": 2,
"statefilepath": "coordinator/state",
"tipsel": {
"heaviestbranchselectiondeadlinemilliseconds": 100,
"maxheaviestbranchtipspercheckpoint": 10,
"minheaviestbranchunconfirmedtransactionsthreshold": 20,
"randomtipspercheckpoint": 3
}
},
"dashboard": {
"basicauth": {
"enabled": false,
"username": ""
},
"bindaddress": "127.0.0.1:8087",
"dev": false,
"theme": "default"
},
"db": {
"debug": false,
"path": "mainnetdb"
},
"httpapi": {
"basicauth": {
"enabled": false,
"username": ""
},
"bindaddress": "127.0.0.1:14265",
"excludehealthcheckfromauth": false,
"limits": {
"bodylengthbytes": 1000000,
"findtransactions": 1000,
"gettrytes": 1000,
"requestslist": 1000
},
"permitremoteaccess": [
"getNodeInfo",
"getBalances",
"checkConsistency",
"getTipInfo",
"getTransactionsToApprove",
"getInclusionStates",
"getNodeAPIConfiguration",
"wereAddressesSpentFrom",
"broadcastTransactions",
"findTransactions",
"storeTransactions",
"getTrytes",
"attachToTangle",
"interruptAttachingToTangle"
],
"permittedroutes": [
"healthz"
],
"whitelistedaddresses": []
},
"logger": {
"disablecaller": true,
"encoding": "console",
"level": "info",
"outputpaths": [
"stdout"
]
},
"mqtt": {
"config": "mqtt_config.json"
},
"network": {
"autopeering": {
"bindaddress": "0.0.0.0:14626",
"entrynodes": [
"[email protected]:14626",
"[email protected]:18626",
"[email protected]:14627",
"12w9FrzMdDQ42aBgFrv1siHuJMhuZ4SMVHRFSS7Zb72W@entrynode.iotatoken.nl:14626",
"DboTc1v61Xdyvggj8VRszy92ScUTLgfwZaHvXsU8zr7e@entrynode.einfachiota.de:14626",
"31Tz9meznQMm7qSDUgyMmYVeHUCGA7za5Suvbom5hpE9@bender.iota.autopeering.com:14626"
],
"inboundpeers": 2,
"maxdroppedpacketspercentage": 0,
"outboundpeers": 2,
"runasentrynode": false,
"saltlifetime": 30,
"seed": ""
},
"gossip": {
"bindaddress": "0.0.0.0:15600",
"reconnectattemptintervalseconds": 60
},
"preferipv6": false
},
"node": {
"alias": "Coordinator",
"disableplugins": [],
"enableplugins": [
"Coordinator"
],
"showaliasingetnodeinfo": false
},
"peerslist": [],
"profiling": {
"bindaddress": "127.0.0.1:6060"
},
"prometheus": {
"bindaddress": "127.0.0.1:9312",
"fileservicediscovery": {
"enabled": false,
"path": "target.json",
"target": "127.0.0.1:9312"
},
"gometrics": true,
"processmetrics": true,
"promhttpmetrics": true
},
"snapshots": {
"global": {
"index": 0,
"path": "snapshot/snapshot.csv",
"spentaddressespaths": []
},
"loadtype": "global",
"local": {
"depth": 50,
"downloadurls": [
"https://ls.manapotion.io/export.bin",
"https://x-vps.com/export.bin",
"https://dbfiles.iota.org/mainnet/hornet/latest-export.bin"
],
"intervalsynced": 50,
"intervalunsynced": 1000,
"path": "snapshot/export.bin"
},
"pruning": {
"delay": 60480,
"enabled": true
}
},
"spammer": {
"address": "HORNET99INTEGRATED99SPAMMER999999999999999999999999999999999999999999999999999999",
"autostart": false,
"bundlesize": 1,
"cpumaxusage": 0.5,
"depth": 1,
"message": "Spamming with HORNET tipselect, thank you for using HORNET playbook",
"tag": "HORNET99INTEGRATED99SPAMMER99PLAYBOOK99RULES",
"tagsemilazy": "",
"tpsratelimit": 0.1,
"valuespam": false,
"workers": 0
},
"spentaddresses": {
"enabled": true
},
"tipsel": {
"belowmaxdepth": 15,
"maxdeltatxoldestrootsnapshotindextolsmi": 13,
"maxdeltatxyoungestrootsnapshotindextolsmi": 8,
"nonlazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 20,
"spammertipsthreshold": 0
},
"semilazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 20,
"spammertipsthreshold": 30
}
},
"useprofile": "auto",
"warpsync": {
"advancementrange": 50
},
"zmq": {
"bindaddress": "127.0.0.1:5556",
"protocol": "tcp"
}
}
peers []
maxPeers [5]
acceptAnyConnection [false]
The following plugins are enabled: Coordinator
██╗ ██╗ ██████╗ ██████╗ ███╗ ██╗███████╗████████╗
██║ ██║██╔═══██╗██╔══██╗████╗ ██║██╔════╝╚══██╔══╝
███████║██║ ██║██████╔╝██╔██╗ ██║█████╗ ██║
██╔══██║██║ ██║██╔══██╗██║╚██╗██║██╔══╝ ██║
██║ ██║╚██████╔╝██║ ██║██║ ╚████║███████╗ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝
v0.5.6
2020-12-30T19:44:43Z INFO CLI Profile mode 'auto', Using profile '2gb'
2020-12-30T19:44:43Z INFO CLI Loading plugins ...
2020-12-30T19:44:43Z INFO Node Loading Plugin: CLI ... done
2020-12-30T19:44:43Z INFO Node Loading Plugin: Graceful Shutdown ... done
2020-12-30T19:44:43Z INFO Node Loading Plugin: Profiling ... done
panic: could not open new DB: open mainnetdb/tangle.db: permission denied
goroutine 1 [running]:
github.com/gohornet/hornet/pkg/model/tangle.boltDB(0x1318f53, 0x9, 0x131931f, 0x9, 0x1110160)
/__w/hornet/hornet/pkg/model/tangle/tangle.go:37 +0x105
github.com/gohornet/hornet/pkg/model/tangle.ConfigureDatabases(0x1318f53, 0x9)
/__w/hornet/hornet/pkg/model/tangle/tangle.go:45 +0x85
github.com/gohornet/hornet/plugins/database.configure(0xc0000995c0)
/__w/hornet/hornet/plugins/database/plugin.go:118 +0x92
github.com/iotaledger/hive.go/node.pluginCaller(0x110a5e0, 0x21444a0, 0xc0003cd230, 0x1, 0x1)
/github/home/go/pkg/mod/github.com/iotaledger/[email protected]/node/events.go:14 +0x62
github.com/iotaledger/hive.go/events.(*Event).Trigger(0xc00024ac30, 0xc0003cd230, 0x1, 0x1)
/github/home/go/pkg/mod/github.com/iotaledger/[email protected]/events/event.go:32 +0x10b
github.com/iotaledger/hive.go/node.(*Node).configure(0xc0005b88a0, 0xc0000dae70, 0x15, 0x16)
/github/home/go/pkg/mod/github.com/iotaledger/[email protected]/node/node.go:93 +0xf6
github.com/iotaledger/hive.go/node.New(0xc000487ef8, 0x1, 0x1, 0x11c0360)
/github/home/go/pkg/mod/github.com/iotaledger/[email protected]/node/node.go:38 +0x153
github.com/iotaledger/hive.go/node.Run(0xc000487ef8, 0x1, 0x1, 0xc00018e580)
/github/home/go/pkg/mod/github.com/iotaledger/[email protected]/node/node.go:51 +0x3f
main.main()
/__w/hornet/hornet/main.go:67 +0x190
Hello.
I run a fresh new install on VPS 4cpu/8gb.
Install run perfect but not sync. Stuck on 5120 / 15460 (CMI / LMI)
I've sync peers connected.
Any idea?
Is this set in your playbook to keep my 30gb ssd from filling up?
I had this error when setting up hornet with a dashboard and a domain name with nginx and certbot:
WARN Dashboard upgrade websocket error: websocket: the client is not using the websocket protocol: 'websocket' token not found in 'Upgrade' header
Classic I have seen this one before. I went to line 71 of /etc/nginx/conf.d/hornet.conf
for:
# hornet dashboard
location / {
...
}
Where I added the lines:
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
And that fixed it.
The final section of that file looks like:
# hornet dashboard
location / {
limit_req zone=hornet_dashboard burst=100;
proxy_pass http://hornet_dashboard;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_store off;
}
I will try to make a PR if I can find it in your ansible.
Just to let you know that there is no data in grafana for Hornet
I was getting the error Failed building wheel for scrypt
with a fresh Debian 10 machine, when it attempted to install scrypt via pip.
root@iota:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
After installing the libssl-dev
, this resolved the error.
sudo apt-get install libssl-dev
██╗ ██╗ ██████╗ ██████╗ ███╗ ██╗███████╗████████╗
██║ ██║██╔═══██╗██╔══██╗████╗ ██║██╔════╝╚══██╔══╝
███████║██║ ██║██████╔╝██╔██╗ ██║█████╗ ██║
██╔══██║██║ ██║██╔══██╗██║╚██╗██║██╔══╝ ██║
██║ ██║╚██████╔╝██║ ██║██║ ╚████║███████╗ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝
_| _| _|
||_| | ||| _| | ||| || || _| _|
_| _| _| _| _| _| _| _| _| _| _| _| _| ||
_| _| _| _| _| _| _| _| _| _| _| _| | | |
||| | ||| ||| ||| || || _| _|
_| _|
_| ||
Welcome to HORNET IOTA FullNode Installer!
Ensuring no package managers ...
Updating system packages...
All packages are up to date.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Check reboot required...
Installing Ansible and git...
Reading package lists... Done
Building dependency tree
Reading state information... Done
software-properties-common is already the newest version (0.98.9.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
'universe' distribution component is already enabled for all sources.
Hit:1 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 https://download.docker.com/linux/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Get:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]
Fetched 210 kB in 1s (280 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'expect' instead of 'expect-dev'
cracklib-runtime is already the newest version (2.9.6-3.2).
git is already the newest version (1:2.25.1-1ubuntu3).
libcrack2 is already the newest version (2.9.6-3.2).
whiptail is already the newest version (0.52.21-4ubuntu2).
ansible is already the newest version (2.9.6+dfsg-1).
expect is already the newest version (5.45.4-2build1).
tcl is already the newest version (8.6.9+1).
python3-pip is already the newest version (20.0.2-5ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Requirement already satisfied: jmespath in /usr/lib/python3/dist-packages (0.9.4)
Verifying Ansible version...
Git cloning hornet-playbook repository...
Backing up older hornet-playbook directory...
Cloning into 'hornet-playbook'...
remote: Enumerating objects: 44, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 1581 (delta 15), reused 32 (delta 13), pack-reused 1537
Receiving objects: 100% (1581/1581), 466.90 KiB | 3.36 MiB/s, done.
Resolving deltas: 100% (854/854), done.
Running playbook...
SSH port to use: 22
*** Running playbook command: ansible-playbook -i inventory -v site.yml -e memory_autoset=true --skip-tags=_
Using /etc/ansible/ansible.cfg as config file
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Check ansible version >=2.8.0] *******************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [install local dependencies] **********************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [install local dependencies] **********************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [install gilt] ************************************************************
ok: [localhost] => {"changed": false, "cmd": ["/usr/bin/pip3", "install", "python-gilt"], "name": ["python-gilt"], "requirements": null, "state": "present", "stderr": "", "stderr_lines": [], "stdout": "Requirement already satisfied: python-gilt in /usr/local/lib/python3.8/dist-packages (1.2.3)\nRequirement already satisfied: PyYAML in /usr/lib/python3/dist-packages (from python-gilt) (5.3.1)\nRequirement already satisfied: fasteners in /usr/lib/python3/dist-packages (from python-gilt) (0.14.1)\nRequirement already satisfied: colorama in /usr/lib/python3/dist-packages (from python-gilt) (0.4.3)\nRequirement already satisfied: sh in /usr/local/lib/python3.8/dist-packages (from python-gilt) (1.14.1)\nRequirement already satisfied: click in /usr/lib/python3/dist-packages (from python-gilt) (7.0)\n", "stdout_lines": ["Requirement already satisfied: python-gilt in /usr/local/lib/python3.8/dist-packages (1.2.3)", "Requirement already satisfied: PyYAML in /usr/lib/python3/dist-packages (from python-gilt) (5.3.1)", "Requirement already satisfied: fasteners in /usr/lib/python3/dist-packages (from python-gilt) (0.14.1)", "Requirement already satisfied: colorama in /usr/lib/python3/dist-packages (from python-gilt) (0.4.3)", "Requirement already satisfied: sh in /usr/local/lib/python3.8/dist-packages (from python-gilt) (1.14.1)", "Requirement already satisfied: click in /usr/lib/python3/dist-packages (from python-gilt) (7.0)"], "version": null, "virtualenv": null}
TASK [run gilt overlay] ********************************************************
ok: [localhost] => {"changed": false, "cmd": ["/usr/local/bin/gilt", "--config", "gilt.yml", "overlay"], "delta": "0:00:01.428675", "end": "2021-01-12 15:26:29.507710", "rc": 0, "start": "2021-01-12 15:26:28.079035", "stderr": "", "stderr_lines": [], "stdout": "nuriel77.ansible-docker:\n - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-docker to /opt/hornet-playbook/roles/docker/\nnuriel77.ansible-haproxy-iota:\n - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-haproxy-iota to /opt/hornet-playbook/roles/haproxy/\nnuriel77.ansible-nginx:\n - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-nginx to /opt/hornet-playbook/roles/nginx/\nnuriel77.ansible-monitoring:\n - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-monitoring to /opt/hornet-playbook/roles/monitoring/", "stdout_lines": ["nuriel77.ansible-docker:", " - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-docker to /opt/hornet-playbook/roles/docker/", "nuriel77.ansible-haproxy-iota:", " - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-haproxy-iota to /opt/hornet-playbook/roles/haproxy/", "nuriel77.ansible-nginx:", " - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-nginx to /opt/hornet-playbook/roles/nginx/", "nuriel77.ansible-monitoring:", " - extracting (master) /root/.gilt/clone/github.com/nuriel77.ansible-monitoring to /opt/hornet-playbook/roles/monitoring/"]}
PLAY [all] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [common : stop if no systemd support] *************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [common : stop if unknown distribution] ***********************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [common : stop if memory is too small] ************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [common : stop if architecture is not supported] **************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
PLAY [fullnode] ****************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [include playbook roles] **************************************************
TASK [docker : set_fact] *******************************************************
ok: [localhost] => {"ansible_facts": {"server_arch": "amd64"}, "changed": false}
TASK [docker : Ensure dependencies are installed] ******************************
ok: [localhost] => {"cache_update_time": 1610483193, "cache_updated": true, "changed": false}
TASK [docker : Add Docker apt key] *********************************************
ok: [localhost] => {"changed": false}
TASK [docker : Ensure curl is present (on older systems without SNI).] *********
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Add Docker apt key (alternative for older systems without SNI).] ***
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : architecture override repository configuration] *****************
ok: [localhost] => {"ansible_facts": {"docker_apt_repository": "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"}, "changed": false}
TASK [docker : ensure old line with edge is gone] ******************************
ok: [localhost] => {"backup": "", "changed": false, "found": 0, "msg": ""}
TASK [docker : ensure old bionic removed for focal] ****************************
ok: [localhost] => {"backup": "", "changed": false, "found": 0, "msg": ""}
TASK [docker : Add Docker repository.] *****************************************
ok: [localhost] => {"changed": false, "repo": "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable", "state": "present"}
TASK [docker : Install epel-release] *******************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Install some packages] ******************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Add Docker GPG key] *********************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Add Docker repository.] *****************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Configure Docker repository] ************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Configure Docker Test repository] *******************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : package] ********************************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : get docker script] **********************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : run get docker script, please wait...] **************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : add user pi to docker group] ************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : rasbpian override repository configuration] *********************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : update packages] ************************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Install Docker Debian/Ubuntu ...] *******************************
ok: [localhost] => {"cache_update_time": 1610483193, "cache_updated": false, "changed": false}
TASK [docker : Install Docker Centos 7 ...] ************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : Install Docker Centos 8 ...] ************************************
skipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}
TASK [docker : ensure docker directory exists] *********************************
ok: [localhost] => {"changed": false, "gid": 0, "group": "root", "mode": "0755", "owner": "root", "path": "/etc/docker", "size": 4096, "state": "directory", "uid": 0}
TASK [docker : add docker configuration] ***************************************
ok: [localhost] => {"changed": false, "checksum": "e7c7919d173079733c3b18e51100f9f0082fb4eb", "dest": "/etc/docker/daemon.json", "gid": 0, "group": "root", "mode": "0644", "owner": "root", "path": "/etc/docker/daemon.json", "size": 53, "state": "file", "uid": 0}
TASK [docker : Ensure Docker is started and enabled] ***************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Service is in unknown state", "status": {}}
NO MORE HOSTS LEFT *************************************************************
PLAY RECAP *********************************************************************
localhost : ok=20 changed=0 unreachable=0 failed=1 skipped=18 rescued=0 ignored=0
Spent most of the day trying to work out whats going wrong but frankly im hitting a dead end as my knowledge isn't great but I am pretty persistant.
Any help with this would be much apreciated.
TASK [build hornet image, this can take a moment...] ********************************************************************************************************
FAILED - RETRYING: build hornet image, this can take a moment... (3 retries left).
FAILED - RETRYING: build hornet image, this can take a moment... (2 retries left).
FAILED - RETRYING: build hornet image, this can take a moment... (1 retries left).
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: docker.errors.APIError: 500 Server Error for http+docker://l ocalhost/v1.41/build?t=gohornet%2Fhornet%3A1.0.5&q=False&nocache=False&rm=True&forcerm=True&pull=False&dockerfile=docker%2FDockerfile.arm64&buildargs=%7B%22T AG%22%3A+%221.0.5%22%2C+%22ARCH%22%3A+%22ARM64%22%7D&networkmode=host: Internal Server Error ("Cannot locate specified Dockerfile: docker/Dockerfile.arm64")
fatal: [localhost]: FAILED! => {"attempts": 3, "changed": false, "msg": "An unexpected docker error occurred: 500 Server Error for http+docker://localhost/v1 .41/build?t=gohornet%2Fhornet%3A1.0.5&q=False&nocache=False&rm=True&forcerm=True&pull=False&dockerfile=docker%2FDockerfile.arm64&buildargs=%7B%22TAG%22%3A+%2 21.0.5%22%2C+%22ARCH%22%3A+%22ARM64%22%7D&networkmode=host: Internal Server Error ("Cannot locate specified Dockerfile: docker/Dockerfile.arm64")"}
I accidentally ran Set node Peer ID
in horc
and that, without confirmation prompt, tried to re-generate new peer ID and it's key. Unfortunately, it looks like gohornet/hornet
image has changed command line for p2pidentity from tools p2pidentity
to tools p2pidentity-gen
. As a result, the private key and peer id is malformed.
$ sudo cat /opt/hornet-playbook/group_vars/all/z-installer-override.yml
[...]
hornet_config_p2p_identityPrivateKey: toolnotfound.
hornet_config_p2p_identityPeerID: appliesthelatestmilestoneinthedatabasetothecoordinatorstatefile
Running the command manually
/usr/bin/docker run -it --rm --name getp2pID "gohornet/hornet:1.1.3" tools p2pidentity
tool not found.
pwd-hash: generates a scrypt hash from your password and salt
p2pidentity-gen: generates a p2p identity private key file
p2pidentity-extract: extracts the p2p identity from the private key file
[...]
Running the command with p2pidentity-gen
/usr/bin/docker run -it --rm --name getp2pID "gohornet/hornet:1.1.3" tools p2pidentity-gen
Your p2p private key (hex): 08390b13f0f113ce6470b923a0a40669cd[...]
Your p2p public key (hex): 80fac4b8f6c[...]
Your p2p public key (base58): 9gUy3J7j7[...]
Your p2p PeerID: 12D3KooWJVr[...]
I have not digged into much depth, but it looks like this breaks the current version. Further more, variables PRIVATE_KEY
and PEER_ID
might need to be reconstructed.
hornet-playbook/roles/hornet/files/horc
Lines 1391 to 1395 in da805c4
@nuriel77 Please let me know if you see this as a bug, and if you'd like some help addressing it in a PR. Also, can you kindly let me know if there is any backup being done in the original setup process.
Thanks!
Installation fails shortly after the username/password step
ERROR! the role 'haproxy' was not found in /opt/hornet-playbook/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/opt/hornet-playbook
-----LOG----
*** Running playbook command: ansible-playbook -i inventory -v site.yml -e memory_autoset=true --skip-tags=_,loadbalancer_role
^[[0;34mUsing /etc/ansible/ansible.cfg as config file^[[0m
^[[0;34m^[[0m
PLAY [localhost] ********************************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************************
^[[0;32mok: [localhost]^[[0m
^[[0;32m^[[0m
TASK [Check ansible version >=2.8.0] ************************************************************************************************************************************************************
^[[0;32mok: [localhost] => {^[[0m
^[[0;32m "changed": false,^[[0m
^[[0;32m "msg": "All assertions passed"^[[0m
^[[0;32m}^[[0m
^[[0;32m^[[0m
TASK [install local dependencies] ***************************************************************************************************************************************************************
^[[0;36mskipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}^[[0m
^[[0;36m^[[0m
TASK [install local dependencies] ***************************************************************************************************************************************************************
^[[0;36mskipping: [localhost] => {"changed": false, "skip_reason": "Conditional result was False"}^[[0m
^[[0;36m^[[0m
TASK [install gilt] *****************************************************************************************************************************************************************************
^[[0;33mchanged: [localhost] => {"changed": true, "cmd": ["/usr/bin/pip3", "install", "python-gilt"], "name": ["python-gilt"], "requirements": null, "state": "present", "stderr": "", "stderr_l>
^[[0;33m^[[0m
TASK [run gilt overlay] *************************************************************************************************************************************************************************
^[[0;32mok: [localhost] => {"changed": false, "cmd": ["/usr/local/bin/gilt", "--config", "gilt.yml", "overlay"], "delta": "0:00:03.625583", "end": "2021-05-01 05:56:25.274179", "rc": 0, "start>
^[[0;32m^[[0m
PLAY [all] **************************************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************************
^[[0;32mok: [localhost]^[[0m
^[[0;32m^[[0m
TASK [common : stop if no systemd support] ******************************************************************************************************************************************************
^[[0;32mok: [localhost] => {^[[0m
^[[0;32m "changed": false,^[[0m
^[[0;32m "msg": "All assertions passed"^[[0m
^[[0;32m}^[[0m
^[[0;32m^[[0m
TASK [common : stop if unknown distribution] ****************************************************************************************************************************************************
^[[0;32mok: [localhost] => {^[[0m
^[[0;32m "changed": false,^[[0m
^[[0;32m "msg": "All assertions passed"^[[0m
^[[0;32m}^[[0m
^[[0;32m^[[0m
TASK [common : stop if memory is too small] *****************************************************************************************************************************************************
^[[0;32mok: [localhost] => {^[[0m
^[[0;32m "changed": false,^[[0m
^[[0;32m "msg": "All assertions passed"^[[0m
^[[0;32m}^[[0m
^[[0;32m^[[0m
TASK [common : stop if architecture is not supported] *******************************************************************************************************************************************
^[[0;32mok: [localhost] => {^[[0m
^[[0;32m "changed": false,^[[0m
^[[0;32m "msg": "All assertions passed"^[[0m
^[[0;32m}^[[0m
^[[0;32m^[[0m
PLAY [fullnode] *********************************************************************************************************************************************************************************
TASK [Gathering Facts] **************************************************************************************************************************************************************************
^[[0;32mok: [localhost]^[[0m
^[[0;32m^[[0m
TASK [include playbook roles] *******************************************************************************************************************************************************************
^[[0;31mERROR! the role 'haproxy' was not found in /opt/hornet-playbook/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/opt/hornet-playbook^[[0m
^[[0;31m^[[0mPLAY RECAP **************************************************************************************************************************************************************************************
^[[0;33mlocalhost^[[0m : ^[[0;32mok=10 ^[[0m ^[[0;33mchanged=1 ^[[0m unreachable=0 failed=0 ^[[0;36mskipped=2 ^[[0m rescued=0 ignored=0
Hi Nuriel77,
Since update their is some file permission issue.
When restarting VPS, Hornet wont start with a exit code 2.
In log you can see permission error.
Thanks
Just tried to do the install and got this:
TASK [download hornet snapshot DB (can take a while)] *********************************************************************************************************** fatal: [localhost]: FAILED! => {"changed": false, "dest": "/var/lib/hornet/snapshot/export.bin", "elapsed": 0, "msg": "Request failed", "response": "HTTP Error 404: Not Found", "status_code": 404, "url": "https://ls.manapotion.io/export.bin"}
https://ls.manapotion.io/export.bin
is down.
I have tried to update my nodes using your script. In all cases (re-run the installation and even install hornet on a fresh server) the following error occurs:
`TASK [install gilt] ****************************************************************************************************************************************************************
changed: [localhost] => {"changed": true, "cmd": ["/usr/bin/pip3", "install", "python-gilt"], "name": ["python-gilt"], "requirements": null, "state": "present", "stderr": "", "stderr_lines": [], "stdout": "Collecting python-gilt\n Downloading python_gilt-1.2.3-py2.py3-none-any.whl (22 kB)\nCollecting colorama\n Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)\nRequirement already satisfied: PyYAML in /usr/lib/python3/dist-packages (from python-gilt) (5.3.1)\nCollecting click\n Downloading click-8.0.1-py3-none-any.whl (97 kB)\nCollecting fasteners\n Downloading fasteners-0.16-py2.py3-none-any.whl (28 kB)\nCollecting sh\n Downloading sh-1.14.2-py2.py3-none-any.whl (40 kB)\nRequirement already satisfied: six in /usr/lib/python3/dist-packages (from fasteners->python-gilt) (1.14.0)\nInstalling collected packages: colorama, click, fasteners, sh, python-gilt\nSuccessfully installed click-8.0.1 colorama-0.4.4 fasteners-0.16 python-gilt-1.2.3 sh-1.14.2\n", "stdout_lines": ["Collecting python-gilt", " Downloading python_gilt-1.2.3-py2.py3-none-any.whl (22 kB)", "Collecting colorama", " Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)", "Requirement already satisfied: PyYAML in /usr/lib/python3/dist-packages (from python-gilt) (5.3.1)", "Collecting click", " Downloading click-8.0.1-py3-none-any.whl (97 kB)", "Collecting fasteners", " Downloading fasteners-0.16-py2.py3-none-any.whl (28 kB)", "Collecting sh", " Downloading sh-1.14.2-py2.py3-none-any.whl (40 kB)", "Requirement already satisfied: six in /usr/lib/python3/dist-packages (from fasteners->python-gilt) (1.14.0)", "Installing collected packages: colorama, click, fasteners, sh, python-gilt", "Successfully installed click-8.0.1 colorama-0.4.4 fasteners-0.16 python-gilt-1.2.3 sh-1.14.2"], "version": null, "virtualenv": null}
TASK [run gilt overlay] ************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/gilt", "--config", "gilt.yml", "overlay"], "delta": "0:00:00.304240", "end": "2021-06-03 09:59:28.700305", "msg": "non-zero return code", "rc": 1, "start": "2021-06-03 09:59:28.396065", "stderr": "Traceback (most recent call last):\n File "/usr/local/bin/gilt", line 8, in \n sys.exit(main())\n File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1137, in call\n return self.main(*args, **kwargs)\n File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1062, in main\n rv = self.invoke(ctx)\n File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1668, in invoke\n return _process_result(sub_ctx.command.invoke(sub_ctx))\n File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke\n return ctx.invoke(self.callback, **ctx.params)\n File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 763, in invoke\n return __callback(*args, **kwargs)\n File "/usr/local/lib/python3.8/dist-packages/click/decorators.py", line 26, in new_func\n return f(get_current_context(), *args, **kwargs)\n File "/usr/local/lib/python3.8/dist-packages/gilt/shell.py", line 68, in overlay\n for c in config.config(filename):\n File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 60, in config\n return [Config(**d) for d in _get_config_generator(filename)]\n File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 60, in \n return [Config(**d) for d in _get_config_generator(filename)]\n File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 132, in _get_config_generator\n "version": d["version"],\nKeyError: 'version'", "stderr_lines": ["Traceback (most recent call last):", " File "/usr/local/bin/gilt", line 8, in ", " sys.exit(main())", " File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1137, in call", " return self.main(*args, **kwargs)", " File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1062, in main", " rv = self.invoke(ctx)", " File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1668, in invoke", " return _process_result(sub_ctx.command.invoke(sub_ctx))", " File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke", " return ctx.invoke(self.callback, **ctx.params)", " File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 763, in invoke", " return __callback(*args, **kwargs)", " File "/usr/local/lib/python3.8/dist-packages/click/decorators.py", line 26, in new_func", " return f(get_current_context(), *args, **kwargs)", " File "/usr/local/lib/python3.8/dist-packages/gilt/shell.py", line 68, in overlay", " for c in config.config(filename):", " File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 60, in config", " return [Config(**d) for d in _get_config_generator(filename)]", " File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 60, in ", " return [Config(**d) for d in _get_config_generator(filename)]", " File "/usr/local/lib/python3.8/dist-packages/gilt/config.py", line 132, in _get_config_generator", " "version": d["version"],", "KeyError: 'version'"], "stdout": "", "stdout_lines": []}
`
Hello,
What is meant with that issue and how to fix?
systemctl stop hornet && docker run -u 39999:39999 --rm -it -v /var/lib/hornet/p2p:/app/p2p gohornet/hornet:1.0.2 --p2p.peerStore.path=/app/p2p/store tool jwt-api && systemctl start hornetpanic: unable to read public key identity file: open /app/p2p/store/key.pub: no such file or directory
I tried the Hornet private tangle setup.
I found the following minor changes. The values specified in the coordinator configuration should be
"coordinator": {
"address":"",
"securityLevel":1,
"merkleTreeDepth":18,
"mwm":5,
"stateFilePath":"coordinator/coordinator.state",
"merkleTreeFilePath":"coordinator/coordinator.tree",
"intervalSeconds":60,
"checkpoints": {
"maxTrackedTails": 10000
},
"tipsel": {
"minHeaviestBranchUnconfirmedTransactionsThreshold": 20,
"maxHeaviestBranchTipsPerCheckpoint": 10,
"randomTipsPerCheckpoint": 2,
"heaviestBranchSelectionDeadlineMilliseconds": 100
}
not as shown in https://github.com/gohornet/hornet/wiki/Tutorials%3A-Private-Tangle#configuration. The coordinator bootstrap command should contain "-v /var/lib/hornet/peering.json:/app/peering.json" otherwise "No config file found via './peering.[json,toml,yaml, yml] '. Loading default settings." error will occur.
However, after the coordinator bootstrap command, the coordinator does not start and no milestone is generated. It looks like maybe two configs are loading, see the following log
Parameters loaded:
{
"acceptanyconnection": false,
"config": "config",
"config-dir": ".",
"coobootstrap": true,
"coordinator": {
"address": "YINUKLVAQSLNKIWOITTKHIZJYZNPGGWOSHWSHOOGXKHZMONPPJCICHQ9XDZHVMVTDDMZEMDXTCIJOIUOC",
"checkpoints": {
"maxtrackedtails": 10000,
"maxtrackedtransactions": 10000
},
"intervalseconds": 60,
"merkletreedepth": 18,
"merkletreefilepath": "coordinator/coordinator.tree",
"milestonemerkletreehashfunc": "BLAKE2b-512",
"mwm": 5,
"securitylevel": 1,
"statefilepath": "coordinator/coordinator.state",
"tipsel": {
"heaviestbranchselectiondeadlinemilliseconds": 100,
"maxheaviestbranchtipspercheckpoint": 10,
"minheaviestbranchunconfirmedtransactionsthreshold": 20,
"randomtipspercheckpoint": 2
}
},
"coostartindex": "0",
"dashboard": {
"basicauth": {
"enabled": false,
"username": ""
},
"bindaddress": "127.0.0.1:8087",
"dev": false,
"theme": "default"
},
"db": {
"debug": false,
"path": "mainnetdb"
},
"forceglobalsnapshot": false,
"help": false,
"httpapi": {
"basicauth": {
"enabled": false,
"username": ""
},
"bindaddress": "127.0.0.1:14265",
"excludehealthcheckfromauth": false,
"limits": {
"bodylengthbytes": 1000000,
"findtransactions": 1000,
"gettrytes": 1000,
"requestslist": 1000
},
"permitremoteaccess": [
"getNodeInfo",
"getBalances",
"checkConsistency",
"getTipInfo",
"getTransactionsToApprove",
"getInclusionStates",
"getNodeAPIConfiguration",
"wereAddressesSpentFrom",
"broadcastTransactions",
"findTransactions",
"storeTransactions",
"getTrytes",
"attachToTangle",
"interruptAttachingToTangle"
],
"whitelistedaddresses": []
},
"maxpeers": 5,
"mqtt": {
"config": "mqtt_config.json"
},
"network": {
"autopeering": {
"bindaddress": "0.0.0.0:14626",
"entrynodes": [],
"inboundpeers": 2,
"maxdroppedpacketspercentage": 0,
"outboundpeers": 2,
"runasentrynode": true,
"saltlifetime": 30,
"seed": ""
},
"gossip": {
"bindaddress": "0.0.0.0:15600",
"reconnectattemptintervalseconds": 60
},
"preferipv6": false
},
"node": {
"alias": "Digiblocks",
"disableplugins": [
"Autopeering",
"Spammer",
"ZMQ",
"MQTT"
],
"enableplugins": [
"Coordinator",
"Prometheus"
],
"showaliasingetnodeinfo": false
},
"overwritecooaddress": false,
"peeringconfig": "peering",
"profilesconfig": "profiles",
"profiling": {
"bindaddress": "127.0.0.1:6060"
},
"prometheus": {
"bindaddress": "127.0.0.1:9312",
"fileservicediscovery": {
"enabled": false,
"path": "target.json",
"target": "localhost:9311"
},
"gometrics": true,
"processmetrics": true,
"promhttpmetrics": true
},
"snapshots": {
"global": {
"index": 0,
"path": "snapshot/snapshot.csv",
"spentaddressespaths": []
},
"loadtype": "global",
"local": {
"depth": 50,
"downloadurls": [],
"intervalsynced": 50,
"intervalunsynced": 1000,
"path": "snapshots/mainnet/export.bin"
},
"pruning": {
"delay": 40000,
"enabled": true
}
},
"spammer": {
"address": "HORNET99INTEGRATED99SPAMMER999999999999999999999999999999999999999999999999999999",
"bundlesize": 1,
"cpumaxusage": 0.8,
"depth": 1,
"message": "Spamming with HORNET tipselect, thank you for using HORNET playbook",
"semilazytipslimit": 30,
"tag": "HORNET99INTEGRATED99SPAMMER99PLAYBOOK99RULES",
"tagsemilazy": "",
"tpsratelimit": 0,
"valuespam": false,
"workers": 0
},
"spentaddresses": {
"enabled": true
},
"syncedatstartup": false,
"tipsel": {
"belowmaxdepth": 15,
"maxdeltatxoldestrootsnapshotindextolsmi": 13,
"maxdeltatxyoungestrootsnapshotindextolsmi": 8,
"nonlazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 100
},
"semilazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 20
}
},
"useprofile": "auto",
"version": false,
"warpsync": {
"advancementrange": 50
},
"zmq": {
"bindaddress": "127.0.0.1:5556",
"protocol": "tcp"
}
}
Parameters loaded:
{
"acceptanyconnection": false,
"config": "config",
"config-dir": ".",
"coobootstrap": true,
"coordinator": {
"address": "UDYXTZBE9GZGPM9SSQV9LTZNDLJIZMPUVVXYXFYVBLIEUHLSEWFTKZZLXYRHHWVQV9MNNX9KZC9D9UZWZ",
"checkpoints": {
"maxtrackedtransactions": 10000
},
"intervalseconds": 10,
"merkletreedepth": 24,
"merkletreefilepath": "coordinator.tree",
"milestonemerkletreehashfunc": "BLAKE2b-512",
"mwm": 14,
"securitylevel": 2,
"statefilepath": "coordinator.state",
"tipsel": {
"heaviestbranchselectiondeadlinemilliseconds": 100,
"maxheaviestbranchtipspercheckpoint": 10,
"minheaviestbranchunconfirmedtransactionsthreshold": 20,
"randomtipspercheckpoint": 3
}
},
"coostartindex": "0",
"dashboard": {
"basicauth": {
"enabled": false,
"passwordhash": "",
"passwordsalt": "",
"username": ""
},
"bindaddress": "localhost:8081",
"dev": false,
"theme": "default"
},
"db": {
"debug": false,
"path": "mainnetdb"
},
"forceglobalsnapshot": false,
"help": false,
"httpapi": {
"basicauth": {
"enabled": false,
"passwordhash": "",
"passwordsalt": "",
"username": ""
},
"bindaddress": "0.0.0.0:14265",
"excludehealthcheckfromauth": false,
"limits": {
"bodylengthbytes": 1000000,
"findtransactions": 1000,
"gettrytes": 1000,
"requestslist": 1000
},
"permitremoteaccess": [
"getNodeInfo",
"getBalances",
"getTransactionsToApprove",
"getInclusionStates",
"getNodeAPIConfiguration",
"wereAddressesSpentFrom",
"broadcastTransactions",
"findTransactions",
"storeTransactions",
"getTrytes"
],
"whitelistedaddresses": []
},
"maxpeers": 5,
"mqtt": {
"config": "mqtt_config.json"
},
"network": {
"autopeering": {
"bindaddress": "0.0.0.0:14626",
"entrynodes": [
"[email protected]:14626",
"[email protected]:18626",
"2GHfjJhTqRaKCGBJJvS5RWty61XhjX7FtbVDhg7s8J1x@entrynode.tanglebay.org:14626",
"[email protected]:14627"
],
"inboundpeers": 2,
"maxdroppedpacketspercentage": 0,
"outboundpeers": 2,
"runasentrynode": false,
"saltlifetime": 30,
"seed": ""
},
"gossip": {
"bindaddress": "0.0.0.0:15600",
"reconnectattemptintervalseconds": 60
},
"preferipv6": false
},
"node": {
"alias": "",
"disableplugins": [],
"enableplugins": [],
"showaliasingetnodeinfo": false
},
"overwritecooaddress": false,
"peeringconfig": "peering",
"peers": [],
"profilesconfig": "profiles",
"profiling": {
"bindaddress": "localhost:6060"
},
"prometheus": {
"bindaddress": "localhost:9311",
"fileservicediscovery": {
"enabled": false,
"path": "target.json",
"target": "localhost:9311"
},
"gometrics": false,
"processmetrics": false,
"promhttpmetrics": false
},
"snapshots": {
"global": {
"index": 1050000,
"path": "snapshotMainnet.txt",
"spentaddressespaths": [
"previousEpochsSpentAddresses1.txt",
"previousEpochsSpentAddresses2.txt",
"previousEpochsSpentAddresses3.txt"
]
},
"loadtype": "local",
"local": {
"depth": 50,
"downloadurls": [],
"intervalsynced": 50,
"intervalunsynced": 1000,
"path": "snapshots/mainnet/export.bin"
},
"pruning": {
"delay": 40000,
"enabled": true
}
},
"spammer": {
"address": "HORNET99INTEGRATED99SPAMMER999999999999999999999999999999999999999999999999999999",
"bundlesize": 1,
"cpumaxusage": "0.5",
"message": "Spamming with HORNET tipselect",
"semilazytipslimit": 20,
"tag": "HORNET99SPAMMER999999999999",
"tagsemilazy": "",
"tpsratelimit": "0.1",
"valuespam": false,
"workers": 1
},
"spentaddresses": {
"enabled": true
},
"syncedatstartup": false,
"tipsel": {
"belowmaxdepth": 15,
"maxdeltatxoldestrootsnapshotindextolsmi": 13,
"maxdeltatxyoungestrootsnapshotindextolsmi": 8,
"nonlazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 100
},
"semilazy": {
"maxapprovers": 2,
"maxreferencedtipageseconds": 3,
"retentionrulestipslimit": 20
}
},
"useprofile": "auto",
"version": false,
"warpsync": {
"advancementrange": 50
},
"zmq": {
"bindaddress": "localhost:5556",
"protocol": "tcp"
}
}
Parameters loaded:
{
"custom": {
"caches": {
"addresses": {
"cachetimems": 100,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"approvers": {
"cachetimems": 1500,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"bundles": {
"cachetimems": 1500,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"bundletransactions": {
"cachetimems": 500,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"incomingtransactionfilter": {
"cachetimems": 2000,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"milestones": {
"cachetimems": 500,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"tags": {
"cachetimems": 100,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"transactions": {
"cachetimems": 1500,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"unconfirmedtx": {
"cachetimems": 100,
"leakdetection": {
"enabled": false,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
}
}
},
"debug": {
"caches": {
"addresses": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"approvers": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"bundles": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"bundletransactions": {
"cachetimems": 500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"incomingtransactionfilter": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"milestones": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"tags": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"transactions": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
},
"unconfirmedtx": {
"cachetimems": 1500,
"leakdetection": {
"enabled": true,
"maxconsumerholdtimesec": 30,
"maxconsumersperobject": 50
}
}
}
}
}
██╗ ██╗ ██████╗ ██████╗ ███╗ ██╗███████╗████████╗
██║ ██║██╔═══██╗██╔══██╗████╗ ██║██╔════╝╚══██╔══╝
███████║██║ ██║██████╔╝██╔██╗ ██║█████╗ ██║
██╔══██║██║ ██║██╔══██╗██║╚██╗██║██╔══╝ ██║
██║ ██║╚██████╔╝██║ ██║██║ ╚████║███████╗ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝
v0.5.0
2020-08-25T16:24:22Z INFO CLI cli/plugin.go:85 Profile mode 'auto', Using profile '8gb'
2020-08-25T16:24:22Z INFO CLI cli/plugin.go:90 Loading plugins ...
2020-08-25T16:24:22Z INFO Node node/node.go:95 Loading Plugin: CLI ... done
2020-08-25T16:24:22Z INFO Node node/node.go:95 Loading Plugin: Graceful Shutdown ... done
2020-08-25T16:24:22Z INFO Node node/node.go:95 Loading Plugin: Profiling ... done
2020-08-25T16:24:22Z INFO Node node/node.go:95 Loading Plugin: Database ... done
2020-08-25T16:24:22Z INFO Node node/node.go:86 Skipping Plugin: Autopeering
2020-08-25T16:24:22Z INFO Node node/node.go:95 Loading Plugin: WebAPI ... done
2020-08-25T16:24:22Z INFO Node node/node.go:113 Executing plugins ...
2020-08-25T16:24:22Z INFO Node node/node.go:117 Starting Plugin: CLI ... done
2020-08-25T16:24:22Z INFO Node node/node.go:117 Starting Plugin: Graceful Shutdown ... done
2020-08-25T16:24:22Z INFO Node node/node.go:117 Starting Plugin: Profiling ... done
2020-08-25T16:24:22Z INFO Node node/node.go:117 Starting Plugin: Database ... done
2020-08-25T16:24:22Z INFO WebAPI webapi/plugin.go:166 Starting WebAPI server ...
2020-08-25T16:24:22Z INFO Node node/node.go:117 Starting Plugin: WebAPI ... done
2020-08-25T16:24:22Z INFO Node node/node.go:120 Starting background workers ...
2020-08-25T16:24:22Z INFO WebAPI webapi/plugin.go:182 Starting WebAPI server ... done
2020-08-25T16:24:22Z INFO WebAPI webapi/plugin.go:188 You can now access the API using: http://127.0.0.1:14265
Thank you for your help,
Roman
Running the installation script on a Ubuntu 20.04 server gave this error;
[...]
TASK [hornet : get release tag] ****************************************************************************************
ok: [localhost] => {"ansible_facts": {"hornet_tag": "1.1.3"}, "changed": false}
TASK [hornet : clone hornet repository] ********************************************************************************
changed: [localhost] => {"after": "1d93f0b7615d45a273889e357ee6b59121768556", "before": null, "changed": true}
TASK [hornet : add user to run hornet as] ******************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "usermod: user hornet is currently used by process 32713\n", "name": "hornet", "rc": 8}
NO MORE HOSTS LEFT *****************************************************************************************************
PLAY RECAP *************************************************************************************************************
localhost : ok=44 changed=19 unreachable=0 failed=1 skipped=32 rescued=0 ignored=0
ERROR! The playbook exited with failure(s). A log has been save here '/var/log/hornet-playbook-202201252144.log'
Running the command as root yields the same error.
This machine has two accounts before running the installation script, namely ops
on id 1000
and ansible
on id 9999
(this machine is in fact managed by Ansible). I do not believe these are a result of the ansible-playbook, but I might be wrong.
Ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.