Skip to content

Instantly share code, notes, and snippets.

View jbenet's full-sized avatar

Juan Benet jbenet

View GitHub Profile
ipfscluster status
runtime/cgo: pthread_create failed: Resource temporarily unavailable
SIGABRT: abort
PC=0x7fc965b63cc9 m=0
goroutine 0 [idle]:
goroutine 1 [running]:
runtime.systemstack_switch()
/usr/local/go/src/runtime/asm_amd64.s:252 fp=0xc420022768 sp=0xc420022760
@jbenet
jbenet / ipfs-cluster-addr.go
Created December 30, 2016 23:02
ipfs-cluster-addr.go
package main
import (
"encoding/json"
"errors"
"flag"
"fmt"
"io/ioutil"
"os"
"os/user"
@jbenet
jbenet / propose-ipfs-pack.md
Created December 23, 2016 11:47
ipfs-pack and friends

IPFS Tooling for datasets

Background

We need some tooling for a certain set of use cases around archival and dataset management. This tooling is for fitting how people work with large files and large datasets.

Grounding Assumptions

Basic grounding assumptions here:

  • datasets are "large" (From GB to EB in size)
@jbenet
jbenet / keybase.md
Created December 16, 2016 12:45
keybase.md

Keybase proof

I hereby claim:

  • I am jbenet on github.
  • I am jbenet (https://keybase.io/jbenet) on keybase.
  • I have a public key ASAWhIGxMuoQ0o-F4ZnPOCvXlJsF8U6WHVZXt3juy9H_SAo

To claim this, I am signing this object:

@jbenet
jbenet / ipld.md
Last active November 29, 2016 04:22

Given this Data

{
  "a": "b",
  "c": [
    {},
    {
      "d": 111,
@jbenet
jbenet / how-to-get-a-speedtest.md
Last active September 13, 2016 21:15
How to get a speed test

What is a speed test?

When picking event spaces and hotels, our group (which includes lots of engineers) requires a good internet connection. For that, we need to check the ping time, the download/upload speeds and capacities, the ISP, and more. This information is required for us to make a good decision, as we cannot get work done if the internet is not of high enough quality.

How to get a speed test?

  • Go to http://speedtest.net
  • Click "Begin Test"
  • Once the test is done, click "Share This Result"
  • Copy the link, and paste it to an email back to us.
'use strict'
const crypto = require('crypto')
const multihashing = require('multihashing')
// do not use cryptographic hash functions with pht
// use non-cryptographic fast hashes, like murmur3 or xxhash
const nextPowerOf2For = (n) => {
return Math.ceil(Math.log2(n))
}
@jbenet
jbenet / foo.sh
Last active October 8, 2015 08:19
#
#
# what!?!? this is bizarre!!!
# this has not happenned at all on tests.
#
# this reinforces that what we may be encountering is not too many
# dials, but rather a bug merged in somewhere
#
#

Keys have lifetimes. After encrypting a certain number of bytes, keys should be replaced.

What if instead of encrypting large ammounts of our data with keys, we used a method similar to DHE?

protocol

  • given symmetric key (or public key) k
  • given message m
  • generate a one-time symmetric key k2
  • encrypt(k1, k2) -> k2c