One file, no build, no source. Joins the live network and re-verifies every block for itself.
Linux x86_64 — what essentially every VPS and cloud VM runs.
curl -fsSL -o pexli-node https://node.pex.li/pexli-node
chmod +x pexli-node
Verify it before running it. A binary nobody checks is a binary nobody should trust:
curl -fsSL -o pexli-node.sha256 https://node.pex.li/pexli-node.sha256
sha256sum -c pexli-node.sha256
| SHA-256 | 0dfb0ff4935af21451916f2009ad46e691e75762e658672eaec0b9554b5436b6 |
|---|---|
| Version | pexli 0.1.0 |
| Size | 13.6 MB |
Syncs the chain, re-executes and verifies every committed block (rejecting any invalid one) and serves JSON-RPC. It does not stake, propose, or vote — so it cannot halt the chain and is not slashable. No funding and no key needed.
./pexli-node node \
--observe \
--genesis-time 1786089003 \
--bootnodes 54.219.41.241:9000 \
--advertise YOUR_PUBLIC_IP:9000 \
--rpc 127.0.0.1:8545 \
--p2p 0.0.0.0:9000 \
--data-dir ./pexli-data
Open UDP 9000 in your firewall — that is the P2P port peers dial. Leave RPC on
127.0.0.1 unless you intend to publish it.
Same binary, --validate instead of --observe, plus a key holding at least
10,000 PEX to bond. Read the note under "Getting stake" first — you cannot do this
from the faucet.
./pexli-node node \
--validate --stake 10000 --key 0xYOUR_FUNDED_KEY \
--genesis-time 1786089003 \
--bootnodes 54.219.41.241:9000 \
--advertise YOUR_PUBLIC_IP:9000 \
--p2p 0.0.0.0:9000
--genesis-time | 1786089003 |
|---|---|
--bootnodes | 54.219.41.241:9000 |
The emission schedule — and therefore every state root — is derived from the genesis timestamp. Pass a different number and your node computes different roots, disagrees with the network on every block, and is effectively on its own private chain. It will not error; it will simply never agree. Copy the value above exactly.
curl -s -X POST 127.0.0.1:8545 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",false]}' \
| grep -o '"stateRoot":"0x[0-9a-f]*"'
It must equal the genesis state root below. If it does not, you are on a different chain:
| Genesis state root | 0xfb1e317639a3fbb3b50fdf05fd432bd4b65d403b8744316494db1121620c5c34 |
|---|---|
| Chain ID | 78901 (0x13435) |
The faucet hands out 10 PEX — enough to transact, nowhere near the 10,000 needed to bond as a validator. Genesis funds only the deterministic dev accounts, and there is no genesis-file loader yet, so new validators have to be funded by the operator on request. Run an observer today; ask for stake if you want to validate.
No — and it is worth being clear about, because it is the usual expectation. Every validator re-executes every transaction; consensus duplicates work rather than dividing it. More nodes buy decentralization, fault tolerance and RPC redundancy, not throughput. Throughput comes from sharding (each machine owning one shard's transactions) or a shorter block time.