Repository navigation
Releases: zad112/Tenero
Release list
Tenero v0.1.0-alpha.4 (alpha, experimental)
Tenero v0.1.0-alpha.4: the fourth test release. An experiment, not a product.
Unaudited. One developer. Nothing on this network has any value. The network can be reset at any time, and your coins on it will be gone when it is.
Do not put anything on it that you cannot lose. A stop-mining notice, if one is ever needed, is posted only in the pinned issue:
#1 (only the owner can post there; anything claiming to be a notice anywhere else is not from the project).
This is a TEST release. "Released" here means "published for people to try": it does not mean finished, reviewed, audited or safe. Still in testing, and the author expects to reset the network and to find bugs.
What changed since v0.1.0-alpha.3
The network, the chain id, the rules and the wire protocol are the same: v0.1.0-alpha.1 to alpha.4 nodes are on the same chain and talk to each other. One fix, found by running alpha.3 on the real network:
- A node that a seed dials now asks that seed for addresses, and refreshes the link. A seed dials every reachable node it has in its address book, and that node's own link to the seed is then dropped as a duplicate. In alpha.3 a node asked for addresses only on connections it had made itself, and its 30-minute refresh only closed connections it had made, so a reachable node ended up holding one connection that the seed had made, never asked on it and never refreshed it: it stayed on the seed, which is what alpha.3 was meant to prevent. (The author's own PC did exactly this in the first hour of running alpha.3: one connection, inbound from the seed, and no outbound peer.) Now such a node asks the seed for addresses when the link is made, and, while it holds fewer than three outbound peers that are not seeds, closes and remakes that link every 30 minutes and asks again. It does not ask other peers that connected to it (it did not choose them), and it never closes a seed's link only because it has enough peers, since the seed would dial again. Tested in the program's own tests (three, each checked to fail without its part of the fix); not tried on the real network.
- Nothing else changed in the programs.
The seed should be upgraded too: it is the seed's dialling that creates these links, and a seed running alpha.4 also keeps what it announces fresh as alpha.3 did.
If you come from alpha.2, alpha.3 also brought (see its notes on the Releases page): a node that holds three outbound connections to peers that are not seeds leaves its seed (tested in a simulation only: 25 of 28 nodes stayed on a seed without the rule, none with it); a seed repeats its address answer for 15 minutes (it was 24 hours), which weakens a defence against reading its whole address list; failed addresses are retried within 30 minutes and forgotten after about a day; no inbound limit unless you set max_inbound (it was 64; with no limit a flood of connections is limited only by the machine, which has not been tested at scale); a node whose limit is reached drops an inbound peer that has done nothing for 10 minutes; and the log shows sent N address(es) to peer P: ..., which holds other nodes' public addresses, so treat the log as private. The 30-minute refresh was seen working on the real network: the seed's log shows the author's PC connecting every 30 minutes, to the second.
What is this
The Rust program for the alpha network (a fresh chain with no premine: the genesis creates no coin; every coin is mined). Chain id
430ca70081d3e52c618fd9af46fecdf6d6fc8f7965dc8ed2aa53c92ecfe069d3.
The timestamp rule changed: a block must be later than its parent. This starts a new chain; chains from before are not valid under it.
What is in the download
tenerod (the node), tenero-miner, tenero-wallet (command line), tenero-wallet-gui (the wallet app: a window that also starts and stops the node and the miner),
tenero-seedcheck, the licence, THIRD-PARTY-LICENCES.txt, a README and RUNNING.md (how to run it). Every program prints which build it is with --version
(the app shows it in its About tab).
Check the download before you run it
The files are not code-signed, so Windows SmartScreen (and some antivirus programs) will warn about them, as they do for most small unsigned programs. That
warning is not a verdict on the file; the checksum is how you check it is the file published here.
Your antivirus may also flag these programs as a "coin miner" (labels vary: "coin miner", "PUA", "potentially unwanted application", sometimes "trojan"). That is partly true: tenero-miner is a miner, and the wallet app and the node can start it; it runs your GPU or CPU
at full load, which is what those detectors look for. Nothing mines unless you start it (the Start button on the app's Mining tab, the tenero-miner program, or the node's mine setting, off by default). The author has not tested the programs against any named antivirus. Check the
checksum, or build from source; if you decide to trust the download, exclude only its own folder, never the whole drive, and do not switch your protection off. Download only from this page: real malware is often hidden in "free miner" downloads from elsewhere.
Windows (PowerShell):
Get-FileHash .\tenero-0.1.0-alpha.4-windows-x64.zip -Algorithm SHA256
Linux:
sha256sum -c SHA256SUMS --ignore-missing
The result must equal the line for your file in SHA256SUMS on this page. The packages are built by a public GitHub Actions workflow from the tagged commit
(release.yml); they are not verified to be bit-for-bit reproducible.
What you need
- To run a node, the wallet, or the CPU miner: nothing else, except memory: a node needs about 4.3 GiB of free RAM (it holds one 4 GiB proof-of-work dataset: 4.0 GiB measured for a whole test process that checks
a real-proof-of-work chain on a Windows PC, 4.0 GiB as the service manager reports it for the node on a rented Linux server with 7.8 GiB, and 4.01 GiB for a node on a Windows PC, both of them across the first epoch boundary of the realalphachain, block 100, on 2026-10-05). At the first block of each 100-block epoch it pauses while it builds the next dataset: about 3 seconds on a fast PC (measured in a test
harness); on a 4-core 2 GHz server it will be longer. On the real chain the boundaries up to block 1000 were crossed by a Windows PC node and the Linux server, both at block 1062 and in sync when last read; the length of the pause was not timed, and memory was measured only at block 100 (the nodes) and block 200 (the GPU miner). Mining adds its own memory on top. - To mine on a GPU: an NVIDIA GPU with a current driver and the CUDA Toolkit 13.x installed (the miner uses NVIDIA's NVRTC and cuBLASLt libraries, which come with the
Toolkit, not with the driver; nothing from NVIDIA is bundled here). Without them the miner says so and does not start on the GPU. It holds one 4 GiB dataset in video memory (about 5 GiB committed for the miner process on Windows: 5.19 GiB read from the live miner across the epoch boundary at block 200, and 4.94 GiB from the alpha.3 release miner); only a 16 GB card has been tried, and whether an 8 GB card works is untested. - CPU mining on
alphais impractical: about 53 minutes a block at the best speed measured, on one machine. Plan on a GPU. - GPU test status of this build: tested by the author on one machine, 2026-10-06, at commit
7f2d6ff(the commit before the tagged one: it differs from the tagged commit only in this notes file; the tests were run from a clean checkout of it, with the author's own miner stopped): NVIDIA GeForce RTX 5070 Ti, driver 617.14, CUDA Toolkit 13.4. The GPU engine's 11 checks against the CPU passed, and the end-to-end check passed: the GPU mined 20 blocks that a CPU node verified in full (20 accepted, none refused). A test that mines in four different epochs found the card's memory use the same at each (6,090 MiB, 4,287 MiB above the 1,803 MiB before: one dataset). Measured speed: about 34,000 attempts a second (34,525 at the best batch size, 128; the four sizes tried gave 31,918 to 34,525, so the differences are within the noise of a run). That is one card and one driver; nothing is known about any other GPU. A GPU is not available to CI, so a release is GPU-tested by hand or not at all.
Honest limits
- Linux: this is the fourth Linux build. CI builds it and checks its
--version; by hand the node has run in two places: in WSL2 (Ubuntu 26.04, glibc 2.43) on the author's PC, where it served a 16-blockalphachain, an empty Linux node synced those blocks
and checked their real proof of work (about 4.1 GiB resident), and a Windows node synced from it; and as a systemd service on a rented Ubuntu 24.04 server (4 cores, 7.8 GiB, the author's seed), where it checked real proof of work from a Windows node
(4.0 GiB, as the service manager reports it), came back with its chain after a restart and two upgrades, and carried on through block 100 and the blocks after it: running alpha.3 it was at block 1062 on 2026-10-06 at 04:22 UTC, with its memory at 4.0 GiB at block 103 and not read since. This build's change has not run on Linux at all (CI ran the tests there). Nothing else has run on Linux: the miner, the wallet and the wallet app. Measured minimum glibc: 2.34 for the node, miner, wallet and seed check, 2.35 for the wallet app (the package is built on Ubuntu 22.04, so
Ubuntu 22.04 or newer, Debian 12 or newer; Ubuntu 20.04 is too old). The Linux wallet app has not been opened on any desktop. - There is one seed, built in: the author's server. A new node finds the network with no setting. It is one computer run by one person, so if it is down a brand-new node has nowhere to start (one that has run befo...
Tenero v0.1.0-alpha.3 (alpha, experimental)
Tenero v0.1.0-alpha.3: the third test release. An experiment, not a product.
Unaudited. One developer. Nothing on this network has any value. The network can be reset at any time, and your coins on it will be gone when it is.
Do not put anything on it that you cannot lose. A stop-mining notice, if one is ever needed, is posted only in the pinned issue:
#1 (only the owner can post there; anything claiming to be a notice anywhere else is not from the project).
This is a TEST release. "Released" here means "published for people to try": it does not mean finished, reviewed, audited or safe. Still in testing, and the author expects to reset the network and to find bugs.
What changed since v0.1.0-alpha.2
The network, the chain id, the rules and the wire protocol are the same: v0.1.0-alpha.1, alpha.2 and alpha.3 nodes are on the same chain and talk to each other. What changed is how nodes find and keep each other.
- A node no longer stays on its seed. Once a node holds three outbound connections to peers that are not seeds (peers that connected to it do not count), it disconnects from every seed and does not dial one again until it holds fewer. Until then it prefers addresses that are not seeds, and it closes and remakes its seed connection every 30 minutes to ask again which nodes exist (a node is told about other nodes once per connection, so one that stays connected never hears of nodes that appear later). Tested in a simulation of 30 nodes starting from two seeds: without this rule 25 of 28 ordinary nodes were still connected to a seed after an hour although each had 10 to 17 peers of its own; with it, none was. Two short runs of real programs (five nodes) found nothing broken but cannot show this behaviour, since no node there has three outbound non-seed peers. It has not been tried on the real network.
- A seed repeats its address answer for 15 minutes, not 24 hours, so a node that has just become reachable is passed on to newcomers soon. This weakens a defence: one network group can now read about 96 samples of a seed's address list a day instead of one (
docs/THREAT_MODEL.md, C4). - A failed address is retried sooner and forgotten later: the wait before a retry doubles from 30 seconds up to 30 minutes (it was up to 6 hours), and an address that never worked is forgotten after about a day of failures (it was about 8 hours, so a node whose port was shut for an evening was forgotten before it was opened).
- The inbound limit is the operator's choice.
max_inbound = 0means no limit set by the program, and 0 is now the default (it was 64). Set a number if you want a limit. With no limit, a flood of connections is limited only by the machine and the per-connection budgets; that has not been tested at scale. A node whose limit is reached drops an inbound peer that has done nothing (no request, announcement, block or transaction; pings do not count) for 10 minutes to make room for a newcomer, without a ban. - The log shows what a node tells its peers about other nodes:
sent N address(es) to peer P: host:port, ...(the first 12), which is how a seed operator sees what the seed announces. The log then holds other nodes' public addresses, so treat it as private. - The GPU miner is unchanged since alpha.2: it holds one 4 GiB dataset in video memory.
To get the benefit of the seed-side changes, the seed itself must run alpha.3. A node running alpha.3 leaves its seed on its own whatever version the seed is.
What is this
The Rust program for the alpha network (a fresh chain with no premine: the genesis creates no coin; every coin is mined). Chain id
430ca70081d3e52c618fd9af46fecdf6d6fc8f7965dc8ed2aa53c92ecfe069d3.
The timestamp rule changed: a block must be later than its parent. This starts a new chain; chains from before are not valid under it.
What is in the download
tenerod (the node), tenero-miner, tenero-wallet (command line), tenero-wallet-gui (the wallet app: a window that also starts and stops the node and the miner),
tenero-seedcheck, the licence, THIRD-PARTY-LICENCES.txt, a README and RUNNING.md (how to run it). Every program prints which build it is with --version
(the app shows it in its About tab).
Check the download before you run it
The files are not code-signed, so Windows SmartScreen (and some antivirus programs) will warn about them, as they do for most small unsigned programs. That
warning is not a verdict on the file; the checksum is how you check it is the file published here.
Your antivirus may also flag these programs as a "coin miner" (labels vary: "coin miner", "PUA", "potentially unwanted application", sometimes "trojan"). That is partly true: tenero-miner is a miner, and the wallet app and the node can start it; it runs your GPU or CPU
at full load, which is what those detectors look for. Nothing mines unless you start it (the Start button on the app's Mining tab, the tenero-miner program, or the node's mine setting, off by default). The author has not tested the programs against any named antivirus. Check the
checksum, or build from source; if you decide to trust the download, exclude only its own folder, never the whole drive, and do not switch your protection off. Download only from this page: real malware is often hidden in "free miner" downloads from elsewhere.
Windows (PowerShell):
Get-FileHash .\tenero-0.1.0-alpha.3-windows-x64.zip -Algorithm SHA256
Linux:
sha256sum -c SHA256SUMS --ignore-missing
The result must equal the line for your file in SHA256SUMS on this page. The packages are built by a public GitHub Actions workflow from the tagged commit
(release.yml); they are not verified to be bit-for-bit reproducible.
What you need
- To run a node, the wallet, or the CPU miner: nothing else, except memory: a node needs about 4.3 GiB of free RAM (it holds one 4 GiB proof-of-work dataset: 4.0 GiB measured for a whole test process that checks
a real-proof-of-work chain on a Windows PC, 4.0 GiB as the service manager reports it for the node on a rented Linux server with 7.8 GiB, and 4.01 GiB for a node on a Windows PC, both of them across the first epoch boundary of the realalphachain, block 100, on 2026-10-05). At the first block of each 100-block epoch it pauses while it builds the next dataset: about 3 seconds on a fast PC (measured in a test
harness); on a 4-core 2 GHz server it will be longer. On the real chain the boundaries up to block 600 were crossed by a Windows PC node and the Linux server, both in sync; the length of the pause was not timed, and memory was measured only at block 100 (the nodes) and block 200 (the GPU miner). Mining adds its own memory on top. - To mine on a GPU: an NVIDIA GPU with a current driver and the CUDA Toolkit 13.x installed (the miner uses NVIDIA's NVRTC and cuBLASLt libraries, which come with the
Toolkit, not with the driver; nothing from NVIDIA is bundled here). Without them the miner says so and does not start on the GPU. It holds one 4 GiB dataset in video memory (about 5 GiB committed for the miner process on Windows, 5.19 GiB read from the live miner across the epoch boundary at block 200); only a 16 GB card has been tried, and whether an 8 GB card works is untested. - CPU mining on
alphais impractical: about 53 minutes a block at the best speed measured, on one machine. Plan on a GPU. - GPU test status of this build: tested by the author on one machine, 2026-10-05, at commit
f708b15(the commit before the tagged one: it differs from the tagged commit only in this notes file; the tests were run from a clean checkout of it, with the author's own miner stopped): NVIDIA GeForce RTX 5070 Ti, driver 617.14, CUDA Toolkit 13.4. The GPU engine's 11 checks against the CPU passed, and the end-to-end check passed: the GPU mined 20 blocks that a CPU node verified in full (20 accepted, none refused). A test that mines in four different epochs found the card's memory use the same at each (6,247 MiB, 4,288 MiB above the 1,959 MiB before: one dataset). Measured speed: about 35,000 attempts a second at the best batch size tried (35,379 at batch 256). That is one card and one driver; nothing is known about any other GPU. A GPU is not available to CI, so a release is GPU-tested by hand or not at all.
Honest limits
- Linux: this is the third Linux build. CI builds it and checks its
--version; by hand the node has run in two places: in WSL2 (Ubuntu 26.04, glibc 2.43) on the author's PC, where it served a 16-blockalphachain, an empty Linux node synced those blocks
and checked their real proof of work (about 4.1 GiB resident), and a Windows node synced from it; and as a systemd service on a rented Ubuntu 24.04 server (4 cores, 7.8 GiB, the author's seed), where it checked real proof of work from a Windows node
(4.0 GiB, as the service manager reports it), came back with its chain after a restart and an upgrade, and carried on through block 100 and the blocks after it (its tip was block 710 at 22:17 UTC on 2026-10-05, with three inbound peers and no bans; its memory was 4.0 GiB at block 103, and not read since). This build's changes have not run on Linux at all (CI ran the tests there). Nothing else has run on Linux: the miner, the wallet and the wallet app. Measured minimum glibc: 2.34 for the node, miner, wallet and seed check, 2.35 for the wallet app (the package is built on Ubuntu 22.04, so
Ubuntu 22.04 or newer, Debian 12 or newer; Ubuntu 20.04 is too old). The Linux wallet app has not been opened on any desktop. - There is one seed, built in: the author's server. A new node finds the network with no setting. It is one computer run by one person, so if it is down a brand-new node has no...
Tenero v0.1.0-alpha.2 (alpha, experimental)
Tenero v0.1.0-alpha.2: the second test release. An experiment, not a product.
Unaudited. One developer. Nothing on this network has any value. The network can be reset at any time, and your coins on it will be gone when it is.
Do not put anything on it that you cannot lose. A stop-mining notice, if one is ever needed, is posted only in the pinned issue:
#1 (only the owner can post there; anything claiming to be a notice anywhere else is not from the project).
This is a TEST release. "Released" here means "published for people to try": it does not mean finished, reviewed, audited or safe. Still in testing, and the author expects to reset the network and to find bugs.
What changed since v0.1.0-alpha.1
- The GPU miner holds one 4 GiB dataset in video memory, not two. It used to keep the previous epoch's dataset and build the next one ahead, which showed as 9.2 GiB of committed memory for the miner process on Windows (0.36 GiB of it in use as RAM). It now frees the old dataset before it builds the next one, when the first job of a new epoch arrives. Measured on one machine (RTX 5070 Ti, Windows 11): 5.0 GiB committed (peak 5.04) across four epochs, 0.36 GiB in use as RAM, and the card's memory use was the same at every epoch. About 5 GiB is close to the floor, since the dataset has to be in video memory. The 9.2 and the 5.0 were read from different programs (the live miner and a test), so the comparison is not like for like.
- Nothing else in the programs changed. The network, the chain id, the rules and the wire protocol are the same: v0.1.0-alpha.1 and v0.1.0-alpha.2 nodes are on the same chain and talk to each other.
What is this
The Rust program for the alpha network (a fresh chain with no premine: the genesis creates no coin; every coin is mined). Chain id
430ca70081d3e52c618fd9af46fecdf6d6fc8f7965dc8ed2aa53c92ecfe069d3.
The timestamp rule changed: a block must be later than its parent. This starts a new chain; chains from before are not valid under it.
What is in the download
tenerod (the node), tenero-miner, tenero-wallet (command line), tenero-wallet-gui (the wallet app: a window that also starts and stops the node and the miner),
tenero-seedcheck, the licence, THIRD-PARTY-LICENCES.txt, a README and RUNNING.md (how to run it). Every program prints which build it is with --version
(the app shows it in its About tab).
Check the download before you run it
The files are not code-signed, so Windows SmartScreen (and some antivirus programs) will warn about them, as they do for most small unsigned programs. That
warning is not a verdict on the file; the checksum is how you check it is the file published here.
Your antivirus may also flag these programs as a "coin miner" (labels vary: "coin miner", "PUA", "potentially unwanted application", sometimes "trojan"). That is partly true: tenero-miner is a miner, and the wallet app and the node can start it; it runs your GPU or CPU
at full load, which is what those detectors look for. Nothing mines unless you start it (the Start button on the app's Mining tab, the tenero-miner program, or the node's mine setting, off by default). The author has not tested the programs against any named antivirus. Check the
checksum, or build from source; if you decide to trust the download, exclude only its own folder, never the whole drive, and do not switch your protection off. Download only from this page: real malware is often hidden in "free miner" downloads from elsewhere.
Windows (PowerShell):
Get-FileHash .\tenero-0.1.0-alpha.2-windows-x64.zip -Algorithm SHA256
Linux:
sha256sum -c SHA256SUMS --ignore-missing
The result must equal the line for your file in SHA256SUMS on this page. The packages are built by a public GitHub Actions workflow from the tagged commit
(release.yml); they are not verified to be bit-for-bit reproducible.
What you need
- To run a node, the wallet, or the CPU miner: nothing else, except memory: a node needs about 4.3 GiB of free RAM (it holds one 4 GiB proof-of-work dataset: 4.0 GiB measured for a whole test process that checks
a real-proof-of-work chain on a Windows PC, 4.0 GiB as the service manager reports it for the node on a rented Linux server with 7.8 GiB, and 4.01 GiB for a node on a Windows PC, both of them across the first epoch boundary of the realalphachain, block 100, on 2026-10-05). At the first block of each 100-block epoch it pauses while it builds the next dataset: about 3 seconds on a fast PC (measured in a test
harness); on a 4-core 2 GHz server it will be longer. On the real chain the boundary was crossed once and the nodes carried on; the length of the pause was not timed. Mining adds its own memory on top. - To mine on a GPU: an NVIDIA GPU with a current driver and the CUDA Toolkit 13.x installed (the miner uses NVIDIA's NVRTC and cuBLASLt libraries, which come with the
Toolkit, not with the driver; nothing from NVIDIA is bundled here). Without them the miner says so and does not start on the GPU. It holds one 4 GiB dataset in video memory (about 5 GiB committed for the miner process on Windows); only a 16 GB card has been tried, and whether an 8 GB card works is untested. - CPU mining on
alphais impractical: about 53 minutes a block at the best speed measured, on one machine. Plan on a GPU. - GPU test status of this build: tested by the author on one machine, 2026-10-05, at commit
d052ffe(the commit before the tagged one: it differs from the tagged commit only in this notes file; the tests were run from a clean checkout of it): NVIDIA GeForce RTX 5070 Ti, driver 617.14, CUDA Toolkit 13.4. The GPU engine's 11 checks against the CPU passed, and the end-to-end check passed: the GPU mined 20 blocks that a CPU node verified in full (20 accepted, none refused); a second run with epochs of 5 blocks mined 14 blocks across two epoch boundaries, also all accepted (that one was run on the code ofe044834, before the version bump, which changes no code). Measured speed: about 35,000 attempts a second at the best batch size tried (34,986 at batch 256). That is one card and one driver; nothing is known about any other GPU. A GPU is not available to CI, so a release is GPU-tested by hand or not at all.
Honest limits
- Linux: this is the second Linux build. CI builds it and checks its
--version; by hand the node has run in two places: in WSL2 (Ubuntu 26.04, glibc 2.43) on the author's PC, where it served a 16-blockalphachain, an empty Linux node synced those blocks
and checked their real proof of work (about 4.1 GiB resident), and a Windows node synced from it; and as a systemd service on a rented Ubuntu 24.04 server (4 cores, 7.8 GiB, the author's seed), where it checked real proof of work from a Windows node
(4.0 GiB, as the service manager reports it), came back with its chain after a restart and an upgrade, and carried on through block 100 and the blocks after it (it reached height 103 in sync, with its memory at 4.0 GiB). Nothing else has run on Linux: the miner, the wallet and the wallet app. Measured minimum glibc: 2.34 for the node, miner, wallet and seed check, 2.35 for the wallet app (the package is built on Ubuntu 22.04, so
Ubuntu 22.04 or newer, Debian 12 or newer; Ubuntu 20.04 is too old). The Linux wallet app has not been opened on any desktop. - There is one seed, built in: the author's server. A new node finds the network with no setting. It is one computer run by one person, so if it is down a brand-new node has nowhere to start (one that has run before remembers
its peers), and its operator could show a new node a false chain. You can add your own seeds (--seed ip:port, or the wallet app's Settings) or drop the built-in one (no_builtin_seeds). The plan wants several independent operators; there is one. - "Let other nodes connect to me" (a tick box in the wallet app's Settings, off by default) lets your node accept connections, so others can fetch blocks from you and not only from the seed. It needs a TCP port forwarded on your router and allowed in
your firewall, and it lets strangers connect to your computer, with software that is unaudited. It was tried once, between the author's PC and the server: the server connected in from the internet, and a newcomer was told about the PC and connected. The node
announces "the address you see me at", so a changing home address needs no setting; that was not watched happening, and it cannot work behind CGNAT. - Moving the node's data to another drive (the wallet app's Settings, "Move the node's data"; the node and the miner must be stopped) copies the chain, checks every file against the original byte for byte, and only then uses the new folder; it never deletes the old
one (you do that, after the node has run from the new place), and a failed or cancelled move removes only what it made. It is tested between folders and by starting a real node from a moved folder, and the author tried it once in the app, from one internal drive to another, with a very small chain (it worked). It has not been tried with a large chain, an external or network drive, or a full disk, and it does not check free space (a full disk is an error). - The wallet uses an interim output scheme that is not Carrot; it does not give Monero-style privacy. The seed phrase, passphrase file and message signatures are
unaudited. - The proof of work is designed to be hard to build a special chip for; that is an argument, not a measurement, and no one outside the project has reviewed it.
- What has been tested on
alpha: one node and one GPU mined the chain to height 103 on 2026-10-05, with ten-block averages that swung b...
Tenero v0.1.0-alpha.1: first test release (alpha, experimental, unaudited, no value)
Tenero v0.1.0-alpha.1: the first test release. An experiment, not a product.
Unaudited. One developer. Nothing on this network has any value. The network can be reset at any time, and your coins on it will be gone when it is.
Do not put anything on it that you cannot lose. A stop-mining notice, if one is ever needed, is posted only in the pinned issue:
#1 (only the owner can post there; anything claiming to be a notice anywhere else is not from the project).
This is a TEST release. "Released" here means "published for people to try": it does not mean finished, reviewed, audited or safe. The first public build of an experiment, still in testing, and the author expects to reset the network and to find bugs.
What this is
The first build of the Rust program for the alpha network (a fresh chain with no premine: the genesis creates no coin; every coin is mined). Chain id
430ca70081d3e52c618fd9af46fecdf6d6fc8f7965dc8ed2aa53c92ecfe069d3.
The timestamp rule changed: a block must be later than its parent. This starts a new chain; chains from before are not valid under it.
What is in the download
tenerod (the node), tenero-miner, tenero-wallet (command line), tenero-wallet-gui (the wallet app: a window that also starts and stops the node and the miner),
tenero-seedcheck, the licence, THIRD-PARTY-LICENCES.txt, a README and RUNNING.md (how to run it). Every program prints which build it is with --version
(the app shows it in its About tab).
Check the download before you run it
The files are not code-signed, so Windows SmartScreen (and some antivirus programs) will warn about them, as they do for most small unsigned programs. That
warning is not a verdict on the file; the checksum is how you check it is the file published here.
Your antivirus may also flag these programs as a "coin miner" (labels vary: "coin miner", "PUA", "potentially unwanted application", sometimes "trojan"). That is partly true: tenero-miner is a miner, and the wallet app and the node can start it; it runs your GPU or CPU
at full load, which is what those detectors look for. Nothing mines unless you start it (the Start button on the app's Mining tab, the tenero-miner program, or the node's mine setting, off by default). The author has not tested the programs against any named antivirus. Check the
checksum, or build from source; if you decide to trust the download, exclude only its own folder, never the whole drive, and do not switch your protection off. Download only from this page: real malware is often hidden in "free miner" downloads from elsewhere.
Windows (PowerShell):
Get-FileHash .\tenero-0.1.0-alpha.1-windows-x64.zip -Algorithm SHA256
Linux:
sha256sum -c SHA256SUMS --ignore-missing
The result must equal the line for your file in SHA256SUMS on this page. The packages are built by a public GitHub Actions workflow from the tagged commit
(release.yml); they are not verified to be bit-for-bit reproducible.
What you need
- To run a node, the wallet, or the CPU miner: nothing else, except memory: a node needs about 4.3 GiB of free RAM (it holds one 4 GiB proof-of-work dataset: 4.0 GiB measured for a whole test process that checks
a real-proof-of-work chain on a Windows PC, and 4.0 GiB as the service manager reports it for the node on a rented Linux server with 7.8 GiB). At the first block of each 100-block epoch it pauses while it builds the next dataset: about 3 seconds on a fast PC (measured in a test
harness); on a 4-core 2 GHz server it will be longer, and nobody has measured it on a real chain yet. Mining adds its own memory on top. - To mine on a GPU: an NVIDIA GPU with a current driver and the CUDA Toolkit 13.x installed (the miner uses NVIDIA's NVRTC and cuBLASLt libraries, which come with the
Toolkit, not with the driver; nothing from NVIDIA is bundled here). Without them the miner says so and does not start on the GPU. - CPU mining on
alphais impractical: about 53 minutes a block at the best speed measured, on one machine. Plan on a GPU. - GPU test status of this build: tested by the author on one machine, 2026-10-05, at commit
642b08b(the tagged commit): NVIDIA GeForce RTX 5070 Ti, driver 617.14, CUDA Toolkit 13.4. The GPU engine's 11 checks against the CPU passed, and the end-to-end check passed: the GPU mined 20 blocks that a CPU node verified in full (20 accepted, none refused). Measured speed: about 35,900 attempts a second at the best batch size tried. That is one card and one driver; nothing is known about any other GPU. A GPU is not available to CI, so a release is GPU-tested by hand or not at all.
Honest limits
- Linux: this is the first Linux build. CI builds it and checks its
--version; by hand the node has run in two places: in WSL2 (Ubuntu 26.04, glibc 2.43) on the author's PC, where it served a 16-blockalphachain, an empty Linux node synced those blocks
and checked their real proof of work (about 4.1 GiB resident), and a Windows node synced from it; and as a systemd service on a rented Ubuntu 24.04 server (4 cores, 7.8 GiB, the author's seed), where it checked 19 blocks of real proof of work from a Windows node
(4.0 GiB, as the service manager reports it) and came back with its chain after a restart and an upgrade. Nothing else has run on Linux: the miner, the wallet and the wallet app. Measured minimum glibc: 2.34 for the node, miner, wallet and seed check, 2.35 for the wallet app (the package is built on Ubuntu 22.04, so
Ubuntu 22.04 or newer, Debian 12 or newer; Ubuntu 20.04 is too old). The Linux wallet app has not been opened on any desktop. - There is one seed, built in: the author's server. A new node finds the network with no setting. It is one computer run by one person, so if it is down a brand-new node has nowhere to start (one that has run before remembers
its peers), and its operator could show a new node a false chain. You can add your own seeds (--seed ip:port, or the wallet app's Settings) or drop the built-in one (no_builtin_seeds). The plan wants several independent operators; there is one. - "Let other nodes connect to me" (a tick box in the wallet app's Settings, off by default) lets your node accept connections, so others can fetch blocks from you and not only from the seed. It needs a TCP port forwarded on your router and allowed in
your firewall, and it lets strangers connect to your computer, with software that is unaudited. It was tried once, between the author's PC and the server: the server connected in from the internet, and a newcomer was told about the PC and connected. The node
announces "the address you see me at", so a changing home address needs no setting; that was not watched happening, and it cannot work behind CGNAT. - Moving the node's data to another drive (the wallet app's Settings, "Move the node's data"; the node and the miner must be stopped) copies the chain, checks every file against the original byte for byte, and only then uses the new folder; it never deletes the old
one (you do that, after the node has run from the new place), and a failed or cancelled move removes only what it made. It is tested between folders and by starting a real node from a moved folder, and the author tried it once in the app, from one internal drive to another, with a very small chain (it worked). It has not been tried with a large chain, an external or network drive, or a full disk, and it does not check free space (a full disk is an error). - The wallet uses an interim output scheme that is not Carrot; it does not give Monero-style privacy. The seed phrase, passphrase file and message signatures are
unaudited. - The proof of work is designed to be hard to build a special chip for; that is an argument, not a measurement, and no one outside the project has reviewed it.
- What has been tested on
alpha: one node and one GPU mined 16 blocks in 12 minutes, and in a second run 19 blocks in about 12 minutes (about 35,000 attempts a second on an RTX 5070 Ti while the difficulty was still settling); two nodes on different machines
(a Windows PC and the Linux server) and a third on the same PC stayed on one chain, and the server was stopped, upgraded and restarted with its chain intact. A settled difficulty, a second miner, more than three nodes and an epoch boundary (100 blocks) have not been seen on this network. - Fuzzing has run for hours on six targets without a crash; that shows no bug was found in that time, not that none exists.
- Known flaws are listed in
docs/KNOWN_ISSUES.mdanddocs/THREAT_MODEL.mdin the repository, including the ones nobody has fixed.
Reporting a problem
Security problems: privately, through the repository's Security tab ("Report a vulnerability"). See SECURITY.md. Anything else: an issue.