Network Working Group February 2025
Request for Comments: XXXX
Category: Informational
Innovention: A Process for Inventing New Words
Status of this Memo
Please note: The following document is an initial draft proposal. All decisions are subject to change. Our present goal is to collect feedback and iterate upon this document. Please feel free to share your suggestions and concerns.
ADX is a federated network for distributing data. It leverages cryptographic signatures and hashes to distribute authenticity proofs along with the data, enabling each node to transact upon the data independently of the data's origin. ADX might therefore be described as an Internet-native database in which records are replicated across nodes.
As a consequence of relying on authenticity proofs, ADX must exchange "canonical" records. That is, ADX records must be transmitted in their original encoding and structure in order to validate the signatures and hashes which comprise the proofs. This stands in contrast to the RESTful model of the Web in which "representations" of records are exchanged and therefore may be constructed at the ti
/** | |
* Counter | |
* | |
* This contract maintains a single numeric value which can only be incremented. | |
*/ | |
import { index } from 'contract' | |
// database api | |
// = |
PREFACE: This is an early draft of the still-untitled Home Cloud project's architecture. I'm sharing this as a kind of progress-report since I'm not ready to share code yet. Feedback is welcome but keep in mind that my head's still "in the details" so it may be hard to take too many suggestions at this stage. I'm sure lots of things will change as the rubber hits the road.
Since I don't have a name for the project yet, I'm using the temporary codename "Austin."
Austin uses a microservice cloud architecture with the following attributes:
- Peer-to-peer networking
- Strictly-defined protocols
import bson from 'bson' | |
import bsonExt from 'bson-ext' | |
import cbor from 'cbor' | |
import { gzipSync, gunzipSync } from 'zlib' | |
const VALUES = [ | |
{value: true}, | |
{value: 1234}, | |
{value: 'string'}, | |
{foo: 'bar', thisIs: 1234, another: true}, |
import bytes from '../../vendor/bytes/index.js' | |
const MAX_WIDTH = 600 | |
const MAX_HEIGHT = 600 | |
const { createFFmpeg, fetchFile } = FFmpeg | |
let ffmpeg | |
export async function compressAndGetThumb (file, maxVideoSize, progressCb) { | |
const objectUrl = URL.createObjectURL(file) | |
const videoEl = document.createElement('video') | |
videoEl.addEventListener('error', console.log) |
<!doctype html> | |
<html> | |
<head> | |
<title>HPM</title> | |
<style> | |
body { | |
max-width: 800px; | |
margin: 0 auto; | |
padding: 0 10px; | |
} |
const RES_SIZE = 256 | |
const encoder = new TextEncoder('utf8') | |
var myWorker = new Worker('/worker.js') | |
console.log(myWorker) | |
const exportedMethods = { | |
hello (str) { | |
return `hello ${str}` | |
} |
// Webterm Input Grammar (PEG.js) | |
// ============================== | |
Expression | |
= Term+ | |
Term | |
= term:Switch _? { return {type: 'param', key: term.key, value: term.value} } | |
/ term:String _? { return {type: 'token', value: term} } |