Configurations

Validator

The following example elvmasterd configuration can enable validation, provided the directories and files specified are created/exist.

enc_block = "H4sIAEf8mGMAA61Vy27bQAy85ysCn3vYF3eXPRY9tECv/QCSy02E2rJry0DSIP9eOnaeSAAnjg4CNKPliOSQujk7P5/JcuzDxezr+Y097Z4vaRh/NgMQIDr4socvlwvdTErt23wpf4x1B0KHlQf3OvqDNpcGztyVO/GaPY0Lr6rVlyhf/6NxGraLl4SlvJl21LhczfWe9aVgNKnDSyuddL3h7frijReGXQzezt+gZT783epDXe8irodle/yO3YevlrKrkLdzd9it3W939GxcjqKH4t1lP5uGXQtosXqG6tW0pu800ecUWmoPmUOG0qhKDKXmEill71S7Y9cFxbXaYlSHmAsHDUmEXa6QnCe7SfMxAPWoOWiB3pMHFY/SRGsiKto5U4MQKvcepFYVRuUuCbuvzvmA3CNoKs4OREZy7B1LhgQi2CKSmFwsISRfUEv0HbEk8R67gvYS5dQ6nH7t23NBm1/DYpj23fHRh3ZPtaH3Qbbz6fpA7uHFcPXJc2OGH0amjb4v5v4szc3fj+vh2L4/NT7TnB7MTJA7ASM6jwRSD1p79x9mByTEyq2JeI0pRQHrLWJEiAki9KAQc4f8tkgrVVnAfBJeiZ+Lh47MnM2LClhdbzVw44auUPTZNCiW8tH4x5r+pCIhkU2jRfNRqRZ1Tn3Kks39XIuNKufuHclHkzh2Ik9K4th1c5rIkTvjJBFlX8EVYLAELAUnoSQAl4mrSXCGjEqEH22HdusBeo7OLOTAWt7Qho25J3S2Uywtyye4d8d//ONsF6zrZz8X216/N9qeYSta6zh94oo6uz37D7N/queKCAAA"

[node]
   identity = "some-validator"
   datadir = "/var/elvmasterd-data"
   networkid = 955305
   port = 40304
   nodiscover = false
   ipcenable = true
   ipcpath = "/tmp/elvmasterd.socket"
   rpcaddr = "127.0.0.1"
   rpcport = 8545
   rpccorsdomain = "*"
   node_account = ""

   verbosity = 4
   log_file = "/var/log/elvmasterd.log"
   log_rotate = true
   log_maxbackups = 5
   log_maxage = 6
   log_maxsize = 100

   trustednodes = "enode://bd6f112bfe161c0aba01f528aabc3e3afa6988d7bf4bf18d27fc1ea5d2741d6c5f08152acb107a98c2d76c1010d562b9a916d4e9a32b7cd8bcbdc71f31d45f4b@35.245.56.134:40303,enode://2c45d0c02de80e79e6256510b8b2766ed3fbf3c83049fd8b944eb5005f00e33e1ae78f224ea9e8e739513d76f1c506e795a15a230c0cf7ebbcf1712679e79b24@34.82.230.165:40303,enode://79c6cfef928835a182df74733534784d6b78e712be2c238807c884b472814720f426a73d00c3a1515702bc499f5c1be04d3778e4d42ff7e3f3acbf9fb80a450c@35.197.227.229:40303,enode://7c62d974fab078319b1d36fd6b1c57126b72ddbab7f7fb753ad5e3957d0722241d4b3e1a8f0300374a35592beaa04cbd6c8ba4945746fdab0663a1b3eb075a8d@34.90.240.19:40303,enode://ea3a37dc7263c41cd1bec2f24c76e04af6da971e9137bc2260246b38a20f49a0ce87203022b68b10b7a86f55ce4c59cfcc10fa58289c85233516e8d3e721bf49@34.66.255.82:40303,enode://623e7e512310d1f38da518efafbc75a47b8993ef0177d36c051a5d84b49cdbd130c64544da909601e985330f33de01157cf828008c6326a85e99cb09fd991813@209.51.161.245:40304,enode://ea7bfc1c4ce6426452a8ca92a5dfc58351afff74957de54059273d779823a74bd2d4462e59ca0b558b3f91c4153382aaca1ece7c99c2c5266b31554d58ef13db@38.142.50.106:40305,enode://50d10d29743333ac5567112bb7fd350eebb5a82ee9abb56710ae808e7720aeee3ee99ca738ef87434f762c49e476fcf300b709070a52c13c9ef73ebbad071fb1@66.220.3.85:40304,enode://c16d5a547ebde44fedcc061daecb5ccf8e49fcfdfd79d94a7fd69829cc03d82bb5b2b6e13a830966906eb5e394d4ce2e4083c913a3b918458fc8bb12366f9fc4@216.66.89.93:40305,enode://884752ff92e6d7943b89c828c9e25a6e9485cc415a715371bb95b6cc43f97e8e691a18725dfe9765bab91c7b355d5802d8c18447086877e4b81321c17daf3324@184.104.204.50:40304,enode://47f575c58c6bf9eb7cb1c9e371cf4ab25a5dd47e08380a6c4ec1166ca61f1f3738c3f4607f53179a5504cac4c7c42dfd25bced7e8231ddc63006072026397095@60.240.133.202:40304,enode://a7b3debaac54c9cee41f4f9c3c39590614c805256461cc428d6c9e0d35620a680104d64e6785233e50a57ac9f2a69e6e9d24e2eb6c9f57412e2d2513ca30fad3@209.146.32.50:40304"
   discovery_urls = "enrtree://ANSPCRAV5TS5FGBBXB7ERZBRUCTS4BLXOF7BQIELODCLLZE2BR2U4@main955305.nodes.cfab.app"

[hdwallet]
   mnemonic = ""
   passphrase = ""
   accounts = 1

Upgrading Genesis

This genesis.json can be used with elvmasterd update-genesis to update the local database that was initialized with an older genesis.

{
  "config": {
    "chainId": 955305,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 17793000,
    "petersburgBlock": 17793000,
    "istanbulBlock": 17793000,
    "clique": {
      "period": 0,
      "epoch": 1000
    }
  },
  "nonce": "0x0",
  "timestamp": "0x0",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000c8f26b2657da8c3278673a4610eef0b0fc9c0d8d33e09967b2e24ccb0685401a540cd1325af3e62e75ff415ec19cdce84aa7efb6ad5228bff2c88ecb9ebfc49f1800129bf35e470e843b9a0b10bc6545cc9d39ac68537224179e731f9974c119fe5ef73c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x1312d00",
  "difficulty": "0x1",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "33e09967b2e24ccb0685401a540cd1325af3e62e": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "5c238bddcc1e3443c54c19939534535f2e536f56": {
      "balance": "0xad78ebc5ac6200000"
    },
    "6715f9bbb67efe5980fd82bdbd907a31635fa377": {
      "balance": "0xad78ebc5ac6200000"
    },
    "75ff415ec19cdce84aa7efb6ad5228bff2c88ecb": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "9aa0fc8bf13ea87e00e146c6f73b870b0b6f10ac": {
      "balance": "0xad78ebc5ac6200000"
    },
    "9ebfc49f1800129bf35e470e843b9a0b10bc6545": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "c8f26b2657da8c3278673a4610eef0b0fc9c0d8d": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "cc9d39ac68537224179e731f9974c119fe5ef73c": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "eb185075b573a3a40c2745506ab819fb6569eaa9": {
      "balance": "0xad78ebc5ac6200000"
    },
    "ef29b91b3022805ea8d95afbbf490d0024199720": {
      "balance": "0xad78ebc5ac6200000"
    }
  },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
{
  "config": {
    "chainId": 955305,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 17793000,
    "petersburgBlock": 17793000,
    "istanbulBlock": 17793000,
    "clique": {
      "period": 0,
      "epoch": 1000
    }
  },
  "nonce": "0x0",
  "timestamp": "0x0",
  "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000c8f26b2657da8c3278673a4610eef0b0fc9c0d8d33e09967b2e24ccb0685401a540cd1325af3e62e75ff415ec19cdce84aa7efb6ad5228bff2c88ecb9ebfc49f1800129bf35e470e843b9a0b10bc6545cc9d39ac68537224179e731f9974c119fe5ef73c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x1312d00",
  "difficulty": "0x1",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "33e09967b2e24ccb0685401a540cd1325af3e62e": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "5c238bddcc1e3443c54c19939534535f2e536f56": {
      "balance": "0xad78ebc5ac6200000"
    },
    "6715f9bbb67efe5980fd82bdbd907a31635fa377": {
      "balance": "0xad78ebc5ac6200000"
    },
    "75ff415ec19cdce84aa7efb6ad5228bff2c88ecb": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "9aa0fc8bf13ea87e00e146c6f73b870b0b6f10ac": {
      "balance": "0xad78ebc5ac6200000"
    },
    "9ebfc49f1800129bf35e470e843b9a0b10bc6545": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "c8f26b2657da8c3278673a4610eef0b0fc9c0d8d": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "cc9d39ac68537224179e731f9974c119fe5ef73c": {
      "balance": "0xa56fa5b99019a5c8000000"
    },
    "eb185075b573a3a40c2745506ab819fb6569eaa9": {
      "balance": "0xad78ebc5ac6200000"
    },
    "ef29b91b3022805ea8d95afbbf490d0024199720": {
      "balance": "0xad78ebc5ac6200000"
    }
  },
  "number": "0x0",
  "gasUsed": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

Validator systemd Units

elvmasterd should be run with some form of process management, like systemd to ensure the daemon loads on system boot, and reloads when failures occur.

The attached versions highlight other scenarios that will work, but may not be documented in detail otherwise.

[Unit]
Description=Eluvio elvmasterd
After=network.target

[Service]
User=eluvio
Group=eluvio
Type=exec
KillMode=mixed
Restart=always
RestartSec=30s

ExecStart=/usr/local/bin/elvmasterd start \
  --config=/etc/elvmasterd/config.toml \
  --allow-insecure-unlock \
  --log-file=/var/elvmasterd-log/elvmasterd.log

[Install]
WantedBy=default.target
[Unit]
Description=Eluvio elvmasterd
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=30s

ExecStart=/usr/local/bin/elvmasterd start \
  --config=/etc/elvmasterd/config.toml \
  --log-file=/var/elvmasterd-log/elvmasterd.log

[Install]
WantedBy=default.target