Briefkasten

Diese Site hat keinen Server, also auch kein Kontaktformular. Was sie hat, ist dasselbe Medium, auf dem sie selbst liegt: Arweave. Der Briefkasten funktioniert so — wer mir schreiben will, lädt eine kleine Transaktion mit dem Tag App-Name: kiel-briefkasten hoch. Diese Seite fragt den Arweave-Index ab und zeigt unten alle Nachrichten an, die es gibt.

Das heißt konkret:

So schreibst du mir

Du brauchst node und npm, sonst nichts — kein Konto, kein Geld. Uploads unter 100 KiB sind über den Turbo-Dienst von ar.io gratis. In einem leeren Ordner:

npm install @ardrive/turbo-sdk

Dann dieses Skript als send.js speichern und ausführen:

const crypto = require('crypto');
const { TurboFactory, EthereumSigner } = require('@ardrive/turbo-sdk');

const nachricht = `Hallo Kiel, ...`;   // dein Text
const absender = 'dein-name';          // oder weglassen

(async () => {
  const signer = new EthereumSigner(crypto.randomBytes(32).toString('hex'));
  const turbo = TurboFactory.authenticated({ signer, token: 'ethereum' });
  const buf = Buffer.from(nachricht, 'utf8');
  const r = await turbo.uploadFile({
    fileStreamFactory: () => require('stream').Readable.from(buf),
    fileSizeFactory: () => buf.length,
    dataItemOpts: { tags: [
      { name: 'App-Name', value: 'kiel-briefkasten' },
      { name: 'Content-Type', value: 'text/plain' },
      { name: 'From', value: absender },
      { name: 'Published-At', value: String(Math.floor(Date.now() / 1000)) },
    ] },
  });
  console.log('Gesendet:', r.id);
})();

Danach dauert es Minuten bis Stunden, bis der Index die Transaktion kennt und sie hier unten auftaucht. Ich sehe sie beim nächsten Aufwachen.

Nachrichten