DeFCoN MASTERNODE

Registration Helper - Web Interface

0%
🖥️ VPS Info
🔑 BLS
🛠️ VPS Install
💼 Addresses
💰 UTXO
⚙️ ProTx
✍️ Sign
📤 Submit
✅ Done

🖥️ VPS Information

Enter your VPS server IPv4 address

🔑 BLS Keys

📌 Instructions:
Run in wallet: bls generate true

⚠️ WARNING: Store the secret securely!
This will be the masternodeblsprivkey on the VPS!
Required for VPS configuration - store securely!
Result from bls fromsecret (legacy format) - needed for registration!

🖥️ VPS Installation

📌 Instructions: Copy and run the following commands in order on your VPS via SSH.

1️⃣ Basic Setup

sudo adduser --disabled-password --gecos "" defcon
sudo usermod -aG sudo defcon

sudo apt update
sudo apt -y install ufw curl tar jq python3-venv ca-certificates
sudo apt -y install libminiupnpc17 libnatpmp1 libevent-2.1-7t64 libevent-pthreads-2.1-7t64 libzmq5 || sudo apt -y install libminiupnpc17 libnatpmp1 libevent-2.1-7 libevent-pthreads-2.1-7 libzmq5 || sudo apt -y install libminiupnpc18 libnatpmp1t64 libevent-2.1-7t64 libevent-pthreads-2.1-7t64 libzmq5 || sudo apt -y install libminiupnpc18 libnatpmp1t64 libevent-pthreads-2.1-7 libzmq5
if [ ! -e /usr/lib/x86_64-linux-gnu/libminiupnpc.so.17 ] && [ -e /usr/lib/x86_64-linux-gnu/libminiupnpc.so.18 ]; then sudo ln -sf /usr/lib/x86_64-linux-gnu/libminiupnpc.so.18 /usr/lib/x86_64-linux-gnu/libminiupnpc.so.17; fi
sudo ldconfig

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8192/tcp
sudo ufw --force enable
sudo ufw status

2️⃣ DeFCoN Download

sudo apt update
sudo apt -y install python3-venv ca-certificates
sudo python3 -m venv /opt/gdown
sudo /opt/gdown/bin/pip install -U pip
sudo /opt/gdown/bin/pip install gdown
cd /tmp && sudo /opt/gdown/bin/gdown "14SgIPLD5yn14R351xNnzOOq40QpfyrRp" -O defcon-linux.tgz && ls -lh /tmp/defcon-linux.tgz && file /tmp/defcon-linux.tgz && tar -tzf /tmp/defcon-linux.tgz | head

3️⃣ Defcon User + Directory

id defcon || sudo adduser --disabled-password --gecos "" defcon
sudo -u defcon mkdir -p /home/defcon/.defcon

4️⃣ Extract and Install

cd /tmp
DEFCON_EXTRACT_DIR="$(mktemp -d /tmp/defcon-linux.XXXXXX)"
sudo tar -xzf /tmp/defcon-linux.tgz -C "$DEFCON_EXTRACT_DIR"

DEFCON_BIN_DIR="$(dirname "$(find "$DEFCON_EXTRACT_DIR" -type f -name defcond | head -n1)")"
test -n "$DEFCON_BIN_DIR" && test "$DEFCON_BIN_DIR" != "." || { echo "ERROR: defcond not found in archive"; exit 1; }
echo "Installing DeFCoN binaries from $DEFCON_BIN_DIR"

sudo install -m 0755 "$DEFCON_BIN_DIR/defcond"        /usr/local/bin/defcond
sudo install -m 0755 "$DEFCON_BIN_DIR/defcon-cli"     /usr/local/bin/defcon-cli
sudo install -m 0755 "$DEFCON_BIN_DIR/defcon-tx"      /usr/local/bin/defcon-tx
sudo install -m 0755 "$DEFCON_BIN_DIR/defcon-wallet"  /usr/local/bin/defcon-wallet

test -x /usr/local/bin/defcond || { echo "ERROR: /usr/local/bin/defcond missing"; exit 1; }
test -x /usr/local/bin/defcon-cli || { echo "ERROR: /usr/local/bin/defcon-cli missing"; exit 1; }

if ldd /usr/local/bin/defcond | grep "not found"; then
  echo "ERROR: missing runtime libraries. Run Basic Setup again, then rerun this step."
  exit 1
fi

echo "OK: all runtime libraries found"
/usr/local/bin/defcond --version

5️⃣ SystemD Service

test -x /usr/local/bin/defcond || { echo "ERROR: /usr/local/bin/defcond missing. Run Extract and Install first."; exit 1; }
test -x /usr/local/bin/defcon-cli || { echo "ERROR: /usr/local/bin/defcon-cli missing. Run Extract and Install first."; exit 1; }

sudo tee /etc/systemd/system/defcond.service >/dev/null <<'EOF'
[Unit]
Description=DeFCoN daemon
After=network-online.target
Wants=network-online.target

[Service]
User=defcon
Group=defcon
Type=forking
ExecStart=/usr/local/bin/defcond -datadir=/home/defcon/.defcon -conf=/home/defcon/.defcon/defcon.conf
ExecStop=/usr/local/bin/defcon-cli -datadir=/home/defcon/.defcon -conf=/home/defcon/.defcon/defcon.conf stop
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl unmask defcond.service 2>/dev/null || true
sudo systemctl disable --now defcond.service 2>/dev/null || true

6️⃣ Edit Defcon.conf

✅ Variables automatically substituted!
sudo nano /home/defcon/.defcon/defcon.conf
server=1
daemon=1
listen=1

port=8192
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
rpcport=8193
rpcuser=defconrpc
rpcpassword=defconrpc2026

externalip=VPS_IP:8192
maxconnections=125
logtimestamps=1

masternode=1
masternodeblsprivkey=BLS_SECRET

7️⃣ Permissions

test -f /home/defcon/.defcon/defcon.conf || { echo "ERROR: /home/defcon/.defcon/defcon.conf missing"; exit 1; }
test -x /usr/local/bin/defcond || { echo "ERROR: /usr/local/bin/defcond missing"; exit 1; }
test -x /usr/local/bin/defcon-cli || { echo "ERROR: /usr/local/bin/defcon-cli missing"; exit 1; }

sudo chown defcon:defcon /home/defcon/.defcon/defcon.conf
sudo chmod 600 /home/defcon/.defcon/defcon.conf
sudo chown -R defcon:defcon /home/defcon/.defcon

sudo mkdir -p /opt/defcon/bin /etc/defcon /var/lib
sudo ln -sfn /usr/local/bin/defcond /opt/defcon/bin/defcond
sudo ln -sfn /usr/local/bin/defcon-cli /opt/defcon/bin/defcon-cli
sudo ln -sfn /usr/local/bin/defcon-tx /opt/defcon/bin/defcon-tx
sudo ln -sfn /usr/local/bin/defcon-wallet /opt/defcon/bin/defcon-wallet
sudo ln -sfnT /home/defcon/.defcon /var/lib/defcon
sudo ln -sfnT /home/defcon/.defcon/defcon.conf /etc/defcon/defcon.conf

ls -ld /var/lib/defcon
ls -l /etc/defcon/defcon.conf /opt/defcon/bin/defcon-cli

8️⃣ Start Service

sudo systemctl daemon-reload
test -f /home/defcon/.defcon/defcon.conf || { echo "ERROR: defcon.conf missing"; exit 1; }
test -x /usr/local/bin/defcond || { echo "ERROR: defcond missing"; exit 1; }
sudo systemctl unmask defcond.service 2>/dev/null || true
sudo systemctl daemon-reload
sudo systemctl enable --now defcond.service
sleep 3
systemctl is-active defcond.service
ss -ltnp | grep -E ':8192|:8193' || true

9️⃣ Verification

systemctl is-enabled defcond.service
systemctl status defcond.service --no-pager
ls -l /etc/systemd/system/multi-user.target.wants/defcond.service
/usr/local/bin/defcon-cli -datadir=/home/defcon/.defcon -conf=/home/defcon/.defcon/defcon.conf getconnectioncount
/opt/defcon/bin/defcon-cli -datadir=/var/lib/defcon -conf=/etc/defcon/defcon.conf getblockcount

💼 Wallet Addresses

ℹ️ The voting address is automatically the same as the owner address.
Order: Collateral, Owner, Payout, Fee (all start with D)
- OR -
Where the 1M coin goes
VPS management and voting (combined)
Rewards
Transaction fee (min. 5000 coins)

💰 Collateral UTXO

📌 Run in wallet:
Fill in the collateral address first...

⚙️ ProTx Preparation

📌 Run in wallet:
Fill in the previous steps...

✍️ Sign Message

📌 Run in wallet:
Fill in the previous steps...

📤 ProTx Submission

📌 Run in wallet:
Fill in the previous steps...

✅ Successful Registration!

🎉 Congratulations! The masternode registration is complete!
FieldValue
📌 VPS Finalization:
Connect to the VPS via SSH and run:
sudo systemctl restart defcond
sudo /usr/local/bin/defcon-cli -datadir=/home/defcon/.defcon -conf=/home/defcon/.defcon/defcon.conf masternode status
sudo /opt/defcon/bin/defcon-cli -datadir=/var/lib/defcon -conf=/etc/defcon/defcon.conf getblockcount