anproto -- authenticated non-networked protocol or another proto sha256 blobs signed with ed25519 keypairs anproto.com
ed25519 social protocols
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 59 lines 2.6 kB view raw view rendered
1<img src='https://raw.githubusercontent.com/evbogue/wiredove/master/doveorange_sm.png' style='width: 75px; height: 75px;' /> 2 3# ANProto 4 5the **A**uthenticated and **N**on-networked protocol or **AN**other protocol 6 7ed25519 keypairs sign timestamp + hash in base64 8 9*** 10 11[anproto.com](https://anproto.com) 12 13+ [JavaScript implementation](https://github.com/evbogue/anproto) [by Evbogue] 14+ [Golang implementation](https://github.com/vic/goan) [by Vic] 15+ [Rust implementation](https://github.com/vic/anproto-rs/) [by Vic] 16+ [Python implementation](https://github.com/macauleyjustin/ANproto-Python) [by Justin] 17 18try it at [anproto.com/try](https://anproto.com/try) or use a client such as [wiredove](https://wiredove.net/) 19 20*** 21 22### What is ANProto? 23 24+ ANProto is the spiritual successor to [secure-scuttlebot](https://scuttlebot.io), but without all of the extra stuff that is difficult to maintain. 25+ ANProto is an attempt to argue that [ATProto](https://atproto.com) is too involved in it's own networking infrastructure to be usefully decentralized. 26+ ANProto operates under the working theory that [Nostr](https://fiatjaf.com/nostr.html) will never reach anyone besides Bitcoiners. 27 28*** 29 30### Bring your own network! 31 32ANProto works over any networking stack. Open the messages from your URL bar! Email them to your friends! Load them on a USB stick an slingshot them over a river! ANProto is non-networked, so you can send and retrieve the messages anyway you want. Try the fetch API or Websockets if you want a good place to start. But maybe dork out trying to send ANProto messages via Bluetooth, LoRa, or sync them via local wifi like you did with Scuttlebot! 33 34*** 35 36### the JavaScript library! 37 38use Deno or your browser 39 40``` 41import { an } from './an.js' 42 43console.log(await an.gen()) 44// BSY7/er4VJIu08o39NaRAiPY/MAvd7oQhlGCRDABjYU=tQa03kqUWG3VtHZ98++lHFBeQ4JKZwuTH2CjC/K6P8EFJjv96vhUki7Tyjf01pECI9j8wC93uhCGUYJEMAGNhQ== 45 46console.log(await an.hash('Hello World')) 47// pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4= 48 49console.log(await an.sign(hash, await a.gen())) 50// BSY7/er4VJIu08o39NaRAiPY/MAvd7oQhlGCRDABjYU=yVpD8i7d3d4dls3YThEg1x1vSdmqeEweV4e4Ejl/8yPoVG7JR0YAKDPagQOgxXMrlCVLNNqvlNvj4xRDOYDLBjE3NTUxOTc4NDEzMTlwWkdtMUF2MElFQktBUmN6ejdleGtOWXNaYjhMemFNclY3SjMyYTJmRkc0PQ== 51 52console.log(await an.open('BSY7/er4VJIu08o39NaRAiPY/MAvd7oQhlGCRDABjYU=yVpD8i7d3d4dls3YThEg1x1vSdmqeEweV4e4Ejl/8yPoVG7JR0YAKDPagQOgxXMrlCVLNNqvlNvj4xRDOYDLBjE3NTUxOTc4NDEzMTlwWkdtMUF2MElFQktBUmN6ejdleGtOWXNaYjhMemFNclY3SjMyYTJmRkc0PQ==')) 53 54//1755197841319pZGm1Av0IEBKARczz7exkNYsZb8LzaMrV7J32a2fFG4= 55``` 56 57--- 58 59MIT