Name
aped - ape daemon
Synopsis
aped [--verify]
The only flag reads everything and touches nothing. There are no other options. It is not that kind of program.
Description
aped follows the naming convention of sshd(8), httpd(8) and crond(8): the job, then a d. The maintainers are aware of the other reading of the name. No fix is planned.
aped performs one action. It claims the creator revenue owed to its deployment, spends the configured fraction on the asset named in aped.conf(5), and writes everything it receives to /dev/null in the same transaction. The write is not buffered. At no point does anything sit between the acquisition and the write where a hand could reach it.
The daemon detaches from its controlling terminal at startup and does not reattach. Observers are supported but not required.
Theory of operation
Revenue accrues to a vault as the asset trades. On each poll the daemon claims what is there, holds back a gas reserve, and converts the configured fraction. The conversion and the write to /dev/null are a single transaction: they land together or they roll back together, and a rolled-back cycle costs the books nothing. What the transaction guarantees as its minimum is what gets written; overdelivery accumulates in /tmp and is swept in its own pass, because a fractional rule can never spend what it claims.
The daemon keeps a ledger and checks it against the chain every cycle, drift shown. When the two disagree in the direction that matters, it gets loud. This is documented under DIAGNOSTICS, and it is the only case in which the daemon raises its voice.
Signals
- SIGTERM
- Finish the open cycle, write anything held to
/dev/null, close the books, exit 0. The one polite way to stop the daemon. - SIGKILL
- Do not. Anything acquired and not yet written stays in a wallet with no process left to write it. The books survive. The courtesy does not.
- SIGINT
- Read as a question. The answer is no.
- SIGHUP
- Re-read the configuration. The configuration has one job in it. This has never changed anything and is supported anyway.
Configuration
See aped.conf(5). Every constant in it was measured on a previous host and the measurements are in the comments. The mint key ships unset. While it is unset the daemon polls, finds nothing, and logs that it found nothing. The documented idle state is not an error.
Files
- /etc/aped.conf
- The rules. One asset, one fraction, one cooldown. See
aped.conf(5). - /etc/systemd/system/aped.service
- The unit.
Restart=always. Seeaped.service(5). - /var/lib/aped/state.json
- The books. Every figure the daemon has ever spoken in public is in here first.
- /dev/null
- The destination. Append-only from this side. Has never been full. The device can be inspected.
Diagnostics
- custom 6001
- The price moved further than the budget between quote and landing. The transaction rolled back whole, nothing was spent, and the daemon does not chase. There will be another cycle.
- block height exceeded
- A transaction the chain never answered. Parked, aged out on the blockhash deadline, never re-sent. A write that lands twice is worse than a write that waits.
- conservation drift
- The books and the chain disagree. In the harmless direction this is somebody's deposit, which the daemon is not allowed to spend and will grudge about in the journal. In the other direction it is the one alarm that matters, and it does not clear itself.
Exit status
0 Clean shutdown, documented for completeness. See Restart= in aped.service(5).
Errors
- ENOSYS
- Returned by
sell().sell()is not implemented on this system. The error code exists so that the question has an answer. Seesell(2).
Bugs
aped acquires high, by construction. Fees are volume, volume peaks at the top, so the vault is fullest exactly when the price is worst. This is documented behavior. It is filed under BUGS because BUGS is the section you were going to check first.
No further bugs are known. Several are suspected.
Caveats
The asset named in aped.conf(5) is a memecoin. It carries no utility, no promise, and no expectation of profit, and nothing in this manual is advice of any kind. The daemon's activity is verifiable on chain, which is a statement about the daemon, not about the price. The chart is not the daemon's department.
History
The naming convention is older than the compact disc. The verb is younger than the phone in your pocket. The daemon predates the asset it is configured for, which the journal can prove, since journals are timestamped by machines that were not asked for an opinion.
Author
The daemon maintains its own page. Complaints about the tone should be piped to /dev/null, where they will be handled like everything else.
See also
sshd(8), crond(8), httpd(8), aped.conf(5), aped.service(5), sell(2) (no manual entry), jeetd(8) (not installed).