rusty sunrise choir
hi folx,
i found some money and i'm keen to sponsor development towards the next generation of the core Scuttlebutt protocol.
i'm keen to sponsor a team working on a future-proofed, maintainable, and accessible Scuttlebutt implementation in Rust.
backstory
i joined the Scuttlebutt project some 4 years ago, brimming with excitement and passion. despite being technically adept, i haven't contributed much code to the project, instead i play with cheerleading, community gardening, technical support, historical archeology, and whatever else i do.
as i've been here, i've noticed so many people be very ideologically motivated to contribute, but then struggle and struggle and struggle with our tech stack and associated resources. for instance, i've noticed people excited about Scuttlebutt are more likely to contribute to Dat or IPFS, why is that?
as i see it, we're stuck in the "innovators" stage of the technology adoption life cycle.
thanks to the generosity and leadership of people like @dominic, we now have a well-designed core protocol and fully-functional reference implementation. at the same time, our core protocol has unspecified behaviors, missing context on fundamental design hypotheses, and knowledge centralized in a few minds. our reference implementation has cryptic code, scattered documentation, confusing modularity.
even to the core maintainers among us, we still struggle with understanding the next module where a bug crops up. not everyone is willing to spend hours trying to understand the deep poems within our source code, or know how to search for the "living documentation" of the protocol, or overcome feeling like an imposter when every step of the contribution process is a barrier.
to sum up, Scuttlebutt is an amazing innovation. yet it's inaccessible to new developers, unmaintainable by existing developers, and not yet prepared for the next stage of adoption. i want to help the project evolve to the next stage, the "early adopters". i think this means capturing all our learnings from Scuttlebutt today, designing the next generation of clear well-described specifications, and empowering the next generation of developers to implement, document, and test these.
what i'm not interested in: staying within the "innovator" stage. i'm not interested in re-inventing our wheels again, i think @dominic has done a really great job at building the core Scuttlebutt protocol and reference implementation, i want our evolution to focus on improving accessibility and maintainability. the only core protocol changes i'm really interested in are future-proofing, or changes that improve our ability to adapt to the unknown future.
principles
i want a Scuttlebutt
- written in Rust or WebAssembly
- backwards-compatible with the existing network
- accessible to new developers
- maintainable by existing developers
- well-specified for humans to audit design
- well-documented for humans to grok implementation
- well-tested for computers to check implementation
- composed of orthogonal parts that each focus on a separate concern
- friendly to other human and computer languages
- designed for crypto upgrades we should expect
- designed for future changes we didn't expect