Files
dolt/vendor/github.com/jbenet/go-base58
Dan Willhite 742f0681c3 Modifications to ipfs-chat and ipfs chunkstore (#3691)
* Modifications to ipfs-chat and ipfs chunkstore
 * Change ipfs paths to include directory where ipfs repo is stored.
 * Rework ipfs-chat to create ipfs chunkstores manually rather than
   relying on Spec.ForDataset. This enables creating two chunkstores
   (one local and one network) using the same IpfsNode (ipfs repo).
 * Create separate replicate function for daemon and mergeMessage
   function for client to experiment with slightly different behaviors
   for each.

* Re-organization of code to remove duplication.

The main points are:
* added event loop to process events synchronously
* more agressive about not re-processing msgs from other nodes
  that we've already processed
* fixed bug in ipfs chunkstore HasMany()

* Add go-base58 library
2017-09-19 17:54:32 -07:00
..

go-base58

I extracted this package from https://github.com/conformal/btcutil to provide a simple base58 package that

  • defaults to base58-check (btc)
  • and allows using different alphabets.

Usage

package main

import (
  "fmt"
  b58 "github.com/jbenet/go-base58"
)

func main() {
  buf := []byte{255, 254, 253, 252}
  fmt.Printf("buffer: %v\n", buf)

  str := b58.Encode(buf)
  fmt.Printf("encoded: %s\n", str)

  buf2 := b58.Decode(str)
  fmt.Printf("decoded: %v\n", buf2)
}

Another alphabet

package main

import (
  "fmt"
  b58 "github.com/jbenet/go-base58"
)

const BogusAlphabet = "ZYXWVUTSRQPNMLKJHGFEDCBAzyxwvutsrqponmkjihgfedcba987654321"


func encdec(alphabet string) {
  fmt.Printf("using: %s\n", alphabet)

  buf := []byte{255, 254, 253, 252}
  fmt.Printf("buffer: %v\n", buf)

  str := b58.EncodeAlphabet(buf, alphabet)
  fmt.Printf("encoded: %s\n", str)

  buf2 := b58.DecodeAlphabet(str, alphabet)
  fmt.Printf("decoded: %v\n\n", buf2)
}


func main() {
  encdec(b58.BTCAlphabet)
  encdec(b58.FlickrAlphabet)
  encdec(BogusAlphabet)
}

License

Package base58 (and the original btcutil) are licensed under the ISC License.