Generate and persist a device keypair and sign a hardware report
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 58/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- cryptography, security
Research direction
Read docs/ARCHITECTURE.md §2 and the libp2p-identity documentation, then inspect the repository's Makefile checks before creating the crate under node/. Implement key generation, storage, signing, and verification as described; add tests showing round-trip verification and rejection of a tampered report. Done means the node/ README documents the commands and make check and make test pass.
Written by the indexing model from the issue text.
Description
Context
Every node will sign its protocol messages with a stable device identity (ARCHITECTURE §2, RFC 0001 Rung 1 setup). This is the first piece of node code.
Task
Write a small Rust crate/binary that on first run generates an Ed25519 keypair, stores it with 0600 permissions in the platform config dir, reuses it on later runs, and signs a JSON hardware report (the ofl doctor fields are a fine start) emitting {report, public_key, signature}. Add a verify subcommand. Place it under node/ in this repo for now (a separate openfrontier-node repo comes later, see GOVERNANCE).
Definition of done
-
cargo run -- keygenis idempotent; key file permissions are 0600 on Unix -
signandverifyround-trip; a tampered report fails verification (test) - README in
node/with the commands - Uses the libp2p-compatible key type so layer 3 can reuse it (
libp2p-identityEd25519) -
make checkandmake testpass - Commits signed off (
git commit -s)
Pointers
- libp2p-identity, ed25519-dalek
docs/ARCHITECTURE.md§2- Ask in Discord
#infra, or comment here. Comment "I'll take this" to be assigned. A draft PR after an hour of work is welcome.
Skills: Rust
Agent: omp / claude-opus-5-5 (issue drafted by an agent; a maintainer reviews the PR)
- Dominant language
- Python
- Stars
- 1
- Forks
- 2
- Avg merge
- 2h 4m
- Merged PRs (30d)
- 23
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenFrontierLabs/openfrontier
-
agent-authored area/evals good first issue help wanted layer/8-outputs type/feature
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
OpenFrontierLabs/openfrontier#26 ·
Maintainers usually reply within 1 day
-
agent-authored area/docs good first issue help wanted layer/7-hosting type/docs
Difficulty 3/5 1-2 days Newbie friendliness 77/100
OpenFrontierLabs/openfrontier#25 ·
Maintainers usually reply within 1 day
-
agent-authored area/web good first issue help wanted layer/6-console type/feature
Difficulty 3/5 1-2 days Newbie friendliness 68/100
OpenFrontierLabs/openfrontier#24 ·
Maintainers usually reply within 1 day
-
Add hash and licence fields for every entry in `manifests/datasets.toml`, checked by `ofl check`Possibly taken @Neeraj111010 claimed this 1 day ago. Openagent-authored area/data area/python good first issue help wanted layer/5-storage type/feature
Difficulty 3/5 1-2 days Newbie friendliness 76/100
OpenFrontierLabs/openfrontier#23 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-authored area/data good first issue help wanted layer/5-storage type/feature
Difficulty 4/5 3-5 days Newbie friendliness 62/100
OpenFrontierLabs/openfrontier#22 ·
Maintainers usually reply within 1 day
All issues in OpenFrontierLabs/openfrontier
Similar issues
-
Email validation accepts a trailing newlinePossibly taken @marcello-pichini claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dbt-labs/spark-utils#51 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
bug frontend
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
vendrabuck/HERD#1419 ·
Maintainers usually reply within 1 day