Skip to content

Instantly share code, notes, and snippets.

View alanshaw's full-sized avatar
🌶️
https://storacha.network

ash alanshaw

🌶️
https://storacha.network
View GitHub Profile
@alanshaw
alanshaw / decode-telegram-stripped-thumb.js
Last active April 10, 2025 15:36
Decode Telegram stripped thumb
// Ported from https://github.com/telegramdesktop/tdesktop/blob/1757dd856b84d23f83d4e562c94dde825f6eb40c/Telegram/SourceFiles/ui/image/image.cpp#L43
const decodeStrippedThumb = (bytes: Uint8Array) => {
if (bytes.length < 3 || bytes[0] !== 1) throw new Error('invalid thumb')
const real = new Uint8Array(header.length + (bytes.length - 2) + footer.length)
real.set(header)
real[164] = bytes[1]
real[166] = bytes[2]
real.set(bytes.subarray(3), header.length)
real.set(footer, header.length + (bytes.length - 2))
return real
@alanshaw
alanshaw / auth-flow.md
Last active March 20, 2025 17:37
Notes for the w3up auth flow

To login...

Client issues:

iss: did:key:agent
aud: did:web:web3.storage
can: access/authorize
with: did:key:agent
nb:
@alanshaw
alanshaw / priv-to-peer.go
Created March 12, 2025 12:28
Ucanto private key to libp2p Peer ID
package main
import (
"fmt"
"github.com/libp2p/go-libp2p/core/crypto"
"github.com/libp2p/go-libp2p/core/peer"
ed25519 "github.com/storacha/go-ucanto/principal/ed25519/signer"
)
@alanshaw
alanshaw / cli.sh
Last active February 25, 2025 15:42
env vars for w3cli
export STORACHA_SERVICE_DID=did:web:alan.up.storacha.network
export STORACHA_SERVICE_URL=https://n7js8smi24.execute-api.us-west-2.amazonaws.com
export STORACHA_STORE_NAME=storacha-cli-alan
export STORACHA_RECEIPTS_URL=https://n7js8smi24.execute-api.us-west-2.amazonaws.com/receipt/
export W3UP_SERVICE_DID=did:web:alan.up.storacha.network
export W3_STORE_NAME=storacha-cli-alan
export W3UP_SERVICE_URL=https://n7js8smi24.execute-api.us-west-2.amazonaws.com
export W3UP_RECEIPTS_ENDPOINT=https://n7js8smi24.execute-api.us-west-2.amazonaws.com/receipt/
@alanshaw
alanshaw / delegation-vis.js
Created February 6, 2025 17:34
Visualise a delegation
import fs from 'node:fs'
import { Readable } from 'node:stream'
import { CARReaderStream } from 'carstream'
import * as dagCBOR from '@ipld/dag-cbor'
import * as dagJSON from '@ipld/dag-json'
import * as DID from '@ipld/dag-ucan/did'
Readable.toWeb(fs.createReadStream('proof.car'))
.pipeThrough(new CARReaderStream())
.pipeTo(new WritableStream({
@alanshaw
alanshaw / bafkqaaa.txt
Created November 29, 2024 16:14
zero-length "identity" multihash with "raw" codec
\x01\x55\x00\x00
bafkqaaa
@alanshaw
alanshaw / cli.sh
Last active February 6, 2025 12:43
Env for storacha CLI STAGING
export STORACHA_SERVICE_DID=did:web:staging.up.storacha.network
export STORACHA_SERVICE_URL=https://staging.up.storacha.network
export STORACHA_STORE_NAME=storacha-cli-staging
export STORACHA_RECEIPTS_URL=https://staging.up.storacha.network/receipt/
@alanshaw
alanshaw / mkdelegate.js
Last active February 6, 2025 13:49
Delegations for the Storacha Network
// node mkdelegate.js <private-key>
import { delegate } from '@ucanto/core'
import * as ed25519 from '@ucanto/principal/ed25519'
import * as Link from 'multiformats/link'
import { identity } from 'multiformats/hashes/identity'
import { base64 } from 'multiformats/bases/base64'
import * as DID from '@ipld/dag-ucan/did'
const indexingServiceDID = 'did:web:staging.indexer.storacha.network'
const uploadServiceDID = 'did:web:staging.up.storacha.network'
@alanshaw
alanshaw / get-commitments.js
Created October 31, 2024 11:49
Get the commitments
const cids = [
'bafybeiei72mvsmckxh6jliaxtgtmktcucw6zjktmjko6lpdb76uy677nym',
'bafybeige7or65xqaqzbrsrnyf3alrcmr3mbkiwvbevc3hpkpiydbixjcte',
'bafybeidovp3gf6h6aye6vv25o3r6ayc32c3znzgijtvqqmqrnsfcljvz7i',
'bafybeigqhr6wptfw6a2jjvvd6alq73mgnn2ugfmnnzdksmaid44divhnju',
'bafybeicih3gpoxip4n2ozuqqfskdwymxcr27i6xgtdmnivuhy5q76weklu',
'bafybeia2fnngg5gzhc6v6ul23j67m4b4j3ekyxnonvyx5n4uo7jtq236my',
'bafybeieymcyqlnif4rtzt3cfterlyudr6lz6bpt3kkchji7bxgcjq3a4iy',
'bafybeibh4swn5lir77xo3sdxps5h3kl6xygmhutdkqwewnyrdvjz435nue',
'bafybeifef47tawlpfdjlrmvohjrnxgozarrwxkrdcqx3mmwigf4fakfr6a',
@alanshaw
alanshaw / gocov.sh
Last active September 18, 2024 09:21
Golang coverage
go test -coverprofile=c.out -v ./...
go tool cover -html="c.out"
# or
go install github.com/cancue/covreport@latest
go test -coverprofile=c.out -v ./...
~/go/bin/covreport -i c.out
open cover.html