LP-0018: OpenStreetMap integration — decentralized map data distribution - #71
Conversation
Restates success criteria in the appendix alongside technical design so builders and evaluators have a single combined specification. Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror LP-0017 registry, supportability, submission, and usability patterns; expand appendix checklist to match updated criteria. Co-authored-by: Cursor <cursoragent@cursor.com>
Aligns LP-0018 with standard on-chain prize patterns: mandatory LEZ deployment, SPEL IDL, sequencer tests, and RISC0 demo requirements. Co-authored-by: Cursor <cursoragent@cursor.com>
✅ Validation passedA reviewer will assess against the prize criteria. Automated check. See solution template and TERMS. |
Introduce a country/subregion region model with a non-overlap invariant and Geofabrik-path keys, add parent/level to the registry schema, and thread the model through success criteria, scope, and the appendix. Add an Adoption section with independently verifiable coverage, redundant mirroring, freshness, and sustained-activity criteria plus a testnet-reset contingency. Freeze the decomposed-country leaf ids (US, China, Russia; India already fixed) so the closed set is reconstructable from the document, and add a 25 verified-entry floor alongside the 15-country bar so coverage cannot be met by tiny single subregions. Reference LP-0020 (OSM Map Viewer) as the complementary usage layer. Co-authored-by: Cursor <cursoragent@cursor.com>
| - Logos Storage module (for storing PBF files) | ||
| - LEZ (Logos Execution Zone) program for the on-chain OSM registry | ||
|
|
||
| Logos Storage may connect to an external Logos node until the built-in module is available. |
There was a problem hiding this comment.
I think this is fine to omit already
| **Required (independently verifiable):** | ||
|
|
||
| - **Coverage.** At least **15 countries** from the predefined set (see [Appendix A.4](#a4-predefined-regions)) are covered on-chain and hosted in Logos Storage, and at least **25 total verified region entries** are covered across the set. A country counts as covered when it is a country-level entry that is registered, or a decomposed country (US, India, China, Russia) for which **at least one of its subregions** is registered. Each contributing entry must verify: the evaluator fetches the CID from Logos Storage, hashes the bytes, and confirms the hash matches Geofabrik's published MD5 for that snapshot. Entries whose stored bytes do not match Geofabrik do not count, and an unverified subregion does not make its country count. The 25-entry floor is above the 15-country minimum and forces some depth in the decomposed countries, so coverage cannot be met by decomposed countries each satisfied with a single small subregion. | ||
| - **Redundant mirroring.** Each **covered region entry** (a country-level region, or a registered subregion of a decomposed country) is registered by **at least 3 distinct accounts**, so no single operator is the sole source for any region. This is verifiable directly from registry entries. (The *count* of distinct accounts is objective; whether those accounts are genuinely independent operators is assessed under Discretionary signals below.) |
There was a problem hiding this comment.
at least 3 distinct accounts sounds to me easily forgeable since accounts are just randomly generated Logos accounts
There was a problem hiding this comment.
Redundant mirroring is now a Discretionary signal: a covered region hosted by more than 5 operators (same CID, distinct hosting accounts), assessed qualitatively.
| **Discretionary signals (considered in addition, per Terms & Conditions):** | ||
|
|
||
| - **Operator independence.** The accounts behind the mirror counts are genuinely independent hosts with real account history, not one team spinning up accounts to satisfy the redundancy bar. Evaluators inspect on-chain and account histories. | ||
| - **Ecosystem reuse.** At least a few independent applications or modules consume the OSM registry module/SDK to discover or fetch regions. Use of the SDK is confirmable by code inspection; whether the consuming projects are genuine and independent of the submitting team is discretionary. |
There was a problem hiding this comment.
| - **Ecosystem reuse.** At least a few independent applications or modules consume the OSM registry module/SDK to discover or fetch regions. Use of the SDK is confirmable by code inspection; whether the consuming projects are genuine and independent of the submitting team is discretionary. | |
| - **Ecosystem reuse.** At least 5 independent applications or modules consume the OSM registry module/SDK to discover or fetch regions. Use of the SDK is confirmable by code inspection; whether the consuming projects are genuine and independent of the submitting team is discretionary. |
There was a problem hiding this comment.
I would say a total of 5 modules, include 3 Basecamp applications (ui module).
Applications must be on a source forge, from independent developers, etc.
I suggest you take a similar approach to the registry λ-Prize: #127
There was a problem hiding this comment.
Ecosystem reuse via the SDK: at least 5 independent modules, including at least 3 Logos Basecamp apps (UI modules), consuming the OSM distribution module. One of the 5 may use only the standalone SDK.
|
|
||
| --- | ||
|
|
||
| ## Appendix: Technical Design and Requirements |
There was a problem hiding this comment.
This section overall looks useful but at the same time makes a lot of choices for implementors.
I would personally try to simplify it or even remove with moving abstract things into FURPS
But we can keep it, I am not strongly against.
To clarify, I expect this to be used mainly by AI :)
There was a problem hiding this comment.
I would removing the appendix here and leave it to the challenger.
|
|
||
| ## Prize Structure | ||
|
|
||
| - **Total Prize:** $X |
There was a problem hiding this comment.
?
| - **Total Prize:** $X | |
| - **Total Prize:** $1500 |
| - [ ] **Region discovery**: fetch the Geofabrik index and display available regions with version info and their level in the region tree (country / subregion), restricted to the predefined set. | ||
| - [ ] **Host workflow**: download PBF from Geofabrik → store to Logos Storage → register on-chain via the OSM registry LEZ program. | ||
| - [ ] **Download workflow**: fetch from Logos Storage (if hosted) or Geofabrik (direct fallback). | ||
| - [ ] **Checksum verification**: verify a downloaded file against Geofabrik's published MD5 checksum. |
There was a problem hiding this comment.
Doesn't seem necessary as we want to avoid calling to Geofabrik just to do checksum. I also assume the CID also acts as a checksum
| - [ ] **Checksum verification**: verify a downloaded file against Geofabrik's published MD5 checksum. |
|
|
||
| **Discretionary signals (considered in addition, per Terms & Conditions):** | ||
|
|
||
| - **Operator independence.** The accounts behind the mirror counts are genuinely independent hosts with real account history, not one team spinning up accounts to satisfy the redundancy bar. Evaluators inspect on-chain and account histories. |
There was a problem hiding this comment.
Might be difficult or not of great value for onchain history.
There was a problem hiding this comment.
Dropped this. Did analogue approach to your PR
| **Discretionary signals (considered in addition, per Terms & Conditions):** | ||
|
|
||
| - **Operator independence.** The accounts behind the mirror counts are genuinely independent hosts with real account history, not one team spinning up accounts to satisfy the redundancy bar. Evaluators inspect on-chain and account histories. | ||
| - **Ecosystem reuse.** At least a few independent applications or modules consume the OSM registry module/SDK to discover or fetch regions. Use of the SDK is confirmable by code inspection; whether the consuming projects are genuine and independent of the submitting team is discretionary. |
There was a problem hiding this comment.
I would say a total of 5 modules, include 3 Basecamp applications (ui module).
Applications must be on a source forge, from independent developers, etc.
I suggest you take a similar approach to the registry λ-Prize: #127
|
|
||
| --- | ||
|
|
||
| ## Appendix: Technical Design and Requirements |
There was a problem hiding this comment.
I would removing the appendix here and leave it to the challenger.
…tion. Downloads now trust the content-addressed CID; Geofabrik MD5 is import-time only. Drop freshness and sustained-activity bars, promote ecosystem reuse of the SDK to a required criterion, and treat redundant mirroring as a discretionary signal. Elevate the OSM registry SDK to a primary deliverable, remove the technical appendix while keeping the frozen region list, drop the LP-0020 viewer-prize reference, set the prize to $1500, and omit the external-node implementation note. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep master's prize-table statuses and solution links, and add the LP-0018 Draft row. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Pin to Logos testnet 0.3, drop the reset contingency, and treat a later testnet as a follow-up prize. Add CLI, cycle counts, module-builder, catalog publishing, and a Geofabrik exception on centralised services. Fit Scope, Submission, and Evaluation to the LP-0023 shape. Keep the SDK as a Basecamp module: full API for the distribution app, limited subset for other Basecamp consumers. Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
||
| - [ ] Deployed and tested against Logos testnet 0.3 (the canonical Logos LEZ zone). | ||
| - [ ] The submission builds and runs end-to-end on both **macOS (Apple Silicon)** and **Linux (x86_64)**. | ||
| - [ ] The Logos Basecamp modules (distribution app and SDK/module) are built with [`logos-module-builder`](https://github.com/logos-co/logos-module-builder) (`mkLogosModule`). |
There was a problem hiding this comment.
we would also want the module to be available in a published catalogue:
- The Logos Core modules published to a module catalog: a fork of
logos-modules-release-base, publishing releases vialogos-modules-release-action. The catalog'slogos-repo.jsonURL must be included so evaluators can install the module through the package-manager UI /lgpd.
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify that the prize spec is outcome criteria, not direction of a participant's approach, and point back to the program Terms & Conditions. Co-authored-by: Cursor <cursoragent@cursor.com>
List it under adoption-first, require dual MIT and Apache-2.0, and evaluate against Adoption plus a solution PR. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
mkLogosModule, and module-catalog publishing added, matching LP-0023.Test plan