Skip to content

Instantly share code, notes, and snippets.

goroutine 0 [idle]:
runtime.futex(0x24fc908, 0x80, 0x0, 0x0, 0x0, 0x7ace00000000, 0x0, 0x0, 0x7ace370afa20, 0x9d7d31, ...)
/usr/lib/go/src/runtime/sys_linux_amd64.s:535 +0x21
runtime.futexsleep(0x24fc908, 0x7ace00000000, 0xffffffffffffffff)
/usr/lib/go/src/runtime/os_linux.go:46 +0x4b
runtime.notesleep(0x24fc908)
/usr/lib/go/src/runtime/lock_futex.go:151 +0xa1
runtime.stoplockedm()
/usr/lib/go/src/runtime/proc.go:2076 +0x8c
runtime.schedule()
package keyrange
type Bound struct {
Value string
Exclusive bool
}
func (b Bound) Open() bool {
return b == Bound{} // zero value is "open"
}
package main
import (
"net"
"sync"
"syscall"
)
func setFdLimit(limit uint64) {
var rLimit syscall.Rlimit
#!/bin/bash
export IPFS_GATEWAY="${IPFS_GATEWAY:-http://127.0.0.1:8080}"
CACHE_DIR="$(go env GOPATH)/pkg/mod/cache"
basepath() {
echo "${1##${CACHE_DIR}/download/}"
}
#!/bin/bash
export IPFS_GATEWAY="${IPFS_GATEWAY:-http://127.0.0.1:8080}"
CACHE_DIR="$(go env GOPATH)/pkg/mod/cache"
basepath() {
echo "${1##${CACHE_DIR}/download/}"
}

Unified Path Namespace

In the strict UNIX philosophy, everything is a file. This breaks down in practice as dealing with streams and bytes everywhere is annoying at best however, it gets one thing right: all "identifiers" live in the same, unambiguous namespace.

We're already part of the way there. We have:

Data paths:

<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" version="9.0.5" editor="www.draw.io" type="device"><diagram id="87810798-0fcf-421c-e1c7-8ed63d431b1e" name="Page-1">5Vxbc+MmFP41ntk+1CME6PKYTbLdzKS7mU063X1UbGyrkYVHJrf++iILbHGxYsdIVtw8ZCyELnx8cM75OGgAz+cvfxTJYvYnHZNs4HvjlwG8GPh+GAX8f1nwKgrCsCqYFum4KgKbgtv0XyIKPVH6mI7JUqnIKM1YulALRzTPyYgpZUlR0Ge12oRm6lMXyZQYBbejJDNL/07HbFaVRtjblH8l6XQmnww8ceY+GT1MC/qYi+cNfDhZ/VWn54m8l6i/nCVj+lwrgpcDeF5Qyqpf85dzkpXQStiq675sObt+74LkbJcL/OqCpyR7FE0/v74Sr8ZeJRyrBpHyEm8APz/PUkZuF8moPPvM+5+XJVk6zfnhiD+XFLwgS+5JdkOXKUupcuKJFCzlSF9rFRhd1M6eifvdU8bonJ8Q78lPk5etbQVrBDkxCZ0TVrzyKvIC2X2ClACK4+dNF2MfVmWzWvfCUFRMBK2m63tvoOU/BLp2pBEyYCVjTjpxSAs2o1OaJ9nlpvSzCjx5SdnP8vcwxOLwFz8E5e+cv051DsvDX+Kyfwhjr2KMJY+M8qLN065pifvqHtX7lS/VDDBvA30sRtqQZUkxJaIa8uwdUZAsYemTen8bqKtLz4oiea1VWNA0Z8vanW/Kgk3/YhQp/Ytijft6/Qg21ec/qjfYdO+6KTv1uESmPrjofJ7kY94I7zq9f2OcfYQxBT1tTAXmmIKBbUwBB2MKBAbCAx+NKpB5+bcTQBj5Kkt9gAyE16jXEfahC4RNA/H17u7m97MbbiU4+vDljDfzPEvL1uwJtgNwcKyCAz1ggGPDJnA
pin () {
ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ
REFS=($@)
if ! test -t 0
then
while read line
do
REFS+=("$line")
done
fi