Giter VIP home page Giter VIP logo

dots-patterns's Introduction

Decentralization Off The Shelf

Decentralized technologies enable alternative applications that challenge the traditional models: where government and corporate control are causing harm, decentralized technologies have the potential to bring about autonomy, resilience, and equity.

However, adoption is slow. Developers and designers need resources that help them understand how to build decentralized applications. Designers need new patterns and approaches for driving the development of decentralized protocols and applications.

This is the work-in-progress library of patterns to support the design and development of better user-facing applications that are backed by decentralized architecture.

You can see these patterns in ther published state, on the pattern library section of the Decentralization, off the shelf website.

Contributing

This pattern library would not exist without YOUR contributions. Please feel free to open an issue or pull request to start a discussion or suggest changes to any of these patterns -- or add a new one! We are actively seeking more input and expertise to advance existing patterns we've already released in this repository.

If you'd like to contribute to an existing pattern or propose a new pattern, please feel free to open a pull request or open an issue.

Stay up to date by watching this repository. Maintainers will be prompt in responding to inquiries!

Governance

Decentralization Off The Shelf is an initiative hosted by Simply Secure, a US-based nonprofit supporting the usability of safety and privacy tools.

The initiative is currently maintained by Eileen Wagner and Karissa McKelvey, and has a group of volunteer contributors and advisors.

Read more about governance structures and our Code of Conduct.

Support Us

You can support us by donating to DOTS or through direct contribution to this repository.

Backers

Backers support this project by contributing $2 to $99 a month. Become a backer

Sponsors

Sponsors support this project by contributing $100 a month or more. Become a sponsor

License

All design patterns are licensed CC-BY

dots-patterns's People

Contributors

okdistribute avatar kirakirawes avatar bumbleblue avatar cafca avatar milo-trujillo avatar mrchrisadams avatar nikgraf avatar

Stargazers

Tofus Wang avatar Jillian Ada Burrows avatar Nikolaus Schlemm avatar Gianni Hong avatar depatchedmode avatar Sinister Light avatar davay avatar Etch avatar Eric avatar Mike Linksvayer avatar David Chatting avatar David M. Dickerson avatar Lennon Day-Reynolds avatar  avatar Shanel Wu avatar mir avatar Aspen Mayer avatar Steve Phillips avatar Diego Zurita avatar Dirk Holtwick avatar Sung Jeon avatar Ender Minyard avatar Jonatan E. Salas avatar Anderson avatar Jiayi (Jess) Xu avatar ⊣˚∆˚⊢ avatar Arthur Melo avatar jinho park avatar  avatar Andrew Gurylev avatar David Wells avatar  avatar Jannis R avatar Thomas Harr avatar Partido Digital Português avatar Nick Beattie avatar Powersource avatar Nicolás Pace avatar Jenny Ryan avatar Terkwood avatar Matthew avatar Joseph Werle avatar Jason Li avatar  avatar Juan Gomez avatar Zachary Talis avatar Caspian Baska avatar PR 花蜜 avatar Josh Goldsmith avatar Iryna Nezhynska avatar netop://ウエハ avatar Seamus Tuohy avatar jon ⚝ avatar Raymond Tijhaar avatar Kamil Chmielewski avatar Brendan A. Miller avatar  avatar Mikkel Kirkgaard Nielsen avatar Nuno Amiar avatar C Dorn avatar Josh Fairhead avatar Matthew Wild avatar Nathan Ridley avatar Géraud Henrion avatar Vic avatar Frederik Krautwald avatar  avatar Marko Roganovic avatar Qusea Saif avatar nirrek avatar Peeyush Raj avatar Tylor Steinberger avatar TED Vortex (Teodor-Eugen Duțulescu) avatar Nikita avatar  avatar nichoth avatar Marco Rubin avatar Tommi avatar 6un9-h0_D@n avatar  avatar Jen Garcia avatar Brian Hendrickson avatar monz avatar Jack Jamieson avatar Armin avatar Danny O'Brien avatar Kelsey avatar Travis Well avatar Charles Adjovu avatar Connor Turland avatar Patrick Connolly avatar  avatar  avatar Shawn Charles avatar Andrew Chou avatar  avatar Ilya Grishkov avatar link2xt avatar Hamish MacDonald avatar Matthias Evering avatar

Watchers

Brad Jones avatar Danny O'Brien avatar  avatar David Wells avatar  avatar Cade avatar Shawn Murphy avatar James Cloos avatar georgia bullen avatar Arnold Schrijver avatar Duncan Harris avatar nichoth avatar  avatar Juan Gomez avatar  avatar Josh Fairhead avatar depatchedmode avatar

dots-patterns's Issues

Add missing pattern illustrations

Some of the patterns still have a fallback image in patterns/<pattern name>/illustration.svg. This needs to be replaced with the final illustration.

Categories

Topic

Every pattern will have only 1 category. This is a first draft of the current patterns we have and some proposed categorization of them. Feedback welcome!

Discussion

These 4 categories came from what @bumbleblue shared in our meeting two weeks ago. I took our current patterns and looked at the patterns workshop we did, and then categorized them based on what seems to make most sense.

Open questions:

  1. Do these categories make sense? Do we need to add, remove, or change any?
  2. Do any of these patterns seem miscategorized?
  3. How should categories be formatted in the markdown?

Categories

identity (& agency?)

  • full address
  • disposable identity
  • persistent identity
  • host roulette
  • @ means membership

sharing (& permissions?)

  • QR code verification
  • paper keys
  • visual hash
  • standards marker
  • sharing is caring
  • whisper links

sync (& status?)

  • network health indicator
  • age indicator
  • discovery pub
  • physical beacon
  • protocol agnosticism

moderation (& curation?)

  • tombstones
  • cautious optimism
  • social radius slider
  • content curators
  • time machine
  • village or city

Page descriptions

  • Pattern Index page description
  • Glossary page description
  • Pattern Library page description

Adding images to the pattern examples

Are there any considerations to think about for formatting or otherwise for how we add images to the patterns?

I think it might be useful to add images to the examples section, i.e., a screenshot of the pattern's use in the wild in some other application. Thoughts?
@cafca @kirakirawes

Discuss "Network-Health-Indicator" Applications

Network-Health-Indicator

patterns/network-health-indicator.md describes a reporting + heartbeat system for tracking where information has been replicated and whether those replicas remain available. The design is well described, but the rationalization is currently limited to "[Use this pattern] when users are trusting your application with storing data that is important to them."

Discussion

What are broader applications of this pattern? My starting thoughts:

  • Confirm that files are widely available

  • Confirm that hosts supply files for a long time (reputation/trust management, maybe related to cautious optimism or conditional file sharing, or simply preventing DDoS or Sybil attacks)

  • Confirm that hosts do not continue providing files after a deletion request (as part of the implementation for the tombstones recommendation)

  • Identify hosts or users with similar interests (someone mirroring files on an obscure topic likely shares that obscure interest - this is an opportunity for social peer discovery)

Note that some of these applications involve UI and informing users, while others (mostly thinking of trust management) are more algorithmic and internal to the network software.

There's also a potential limitation of network health indicators in offline-first or sneakernet networks, where peers are online and synchronizing data infrequently, and disconnect from the network for large stretches of time. In these scenarios, we may need a more detailed network health history or notification protocol, such as nodes pushing notifications that they are present and ready to be tested, rather than nodes polling all peers periodically to see which are online and available.

I'd love to brainstorm more applications and add them to the proposal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.