godeps: update everything to master
Henry authored
New:

* golang.org/x/text (c93e7c9fff19fb9139b5ab04ce041833add0134e)

* github.com/jackpal/gateway (192609c58b8985e645cbe82ddcb28a4362ca0fdc)

Changed:

* github.com/Sirupsen/logrus (old rev 26709e2714106fb8ad40b773b711ebce25b78914) (new rev 6ba91e24c498b49d0363c723e9e2ab2b5b8fd012)
Alexander F Rødseth (1):
      Terminals on Windows may not have colors

Antoine Grondin (1):
      default logs to stderr

Dotan J. Nahum (1):
      logrus_syslog / syslog - example should now be valid

Madhav Puri (2):
      Fix Fatalf() and Fatalln() to exit irrespective of log level
      Fix Fatal*() function of logger to match the behavior of Fatal*() functions of entry

Matthew Baird (1):
      proper use of TextFormatter in documentation

Philip Allen (4):
      Added Raygun hook.
      Moving raygun hook to its own repositiroy at github.com/squirkle/logrus-raygun-hook
      Merge branch 'master' of https://github.com/Sirupsen/logrus
      removing raygun hook from hooks dir, adding reference in hooks table of main README.md

Simon Eskildsen (12):
      Merge pull request #170 from aybabtme/log-to-stderr
      Merge pull request #177 from xyproto/master
      Merge pull request #178 from mattbaird/patch-1
      Merge pull request #168 from squirkle/master
      Merge pull request #183 from evalphobia/feature/sentry-http-request
      formatter/json: fix possible race
      version: bump to 0.8
      Merge pull request #187 from mapuri/master
      version: bump to 0.8.1
      Merge pull request #188 from mapuri/master
      version: 0.8.2
      Merge pull request #189 from jondot/patch-1

evalphobia (1):
      Added special field for *http.Request to Sentry hook

* github.com/cenkalti/backoff (old rev 9831e1e25c874e0a0601b6dc43641071414eec7a) (new rev 6c45d6bc1e78d94431dff8fc28a99f20bafa355a)
Cenk Alti (1):
      fix #14

* github.com/cheggaaa/pb (old rev e8c7cc515bfde3e267957a3b110080ceed51354e) (new rev d7729fd7ec1372c15b83db39834bf842bf2d69fb)
Andrew Sutherland (4):
      just return ourselves on chainable methods
      use channel to trigger isFinished
      make units type safe
      dont panic on multiple Finish calls

Andrey Smirnov (1):
      Fix the data race on pb.isFinish member.

Frederick F. Kautz IV (1):
      Running gofmt, no semantic changes.

Fábio Gomes (1):
      Adds Set64 func to set the current value as int64

Sergey Cherepanov (8):
      netbsd support
      Merge pull request #34 from smira/master
      Merge pull request #35 from nixxquality/patch-1
      Merge pull request #36 from fkautz/pr_out_running_gofmt_no_semantic_changes
      Merge pull request #37 from drewis/forupstream
      Merge pull request #38 from monde-sistemas/master
      correct speed when start value not 0
      return object for a chain calling

nixxquality (1):
      Fix typo

* github.com/crowdmob/goamz/aws (old rev 82345796204222aa56be89cf930c316b1297f906) (new rev 3a06871fe9fc0281ca90f3a7d97258d042ed64c0)
Adrien Bustany (2):
      s3: Retry on url.Error too
      s3test: Implement MultiDel support

Ali Moeeny (4):
      Merge pull request #324 from abustany/s3-retry-url-error
      Merge pull request #329 from richarddbarnett/master
      Merge pull request #330 from abustany/s3test-multidel
      Merge pull request #331 from AndreyKostov/master

Andrey Kostov (1):
      Fix signed urls for s3 with v4 auth and IAM roles

Matthew Moore (1):
      Update README.md

Richard Barnett (1):
      Add Kinesis endpoint for us-west-1

* github.com/crowdmob/goamz/s3 (old rev 82345796204222aa56be89cf930c316b1297f906) (new rev 3a06871fe9fc0281ca90f3a7d97258d042ed64c0)
Adrien Bustany (2):
      s3: Retry on url.Error too
      s3test: Implement MultiDel support

Ali Moeeny (4):
      Merge pull request #324 from abustany/s3-retry-url-error
      Merge pull request #329 from richarddbarnett/master
      Merge pull request #330 from abustany/s3test-multidel
      Merge pull request #331 from AndreyKostov/master

Andrey Kostov (1):
      Fix signed urls for s3 with v4 auth and IAM roles

Matthew Moore (1):
      Update README.md

Richard Barnett (1):
      Add Kinesis endpoint for us-west-1

* github.com/fd/go-nat (old rev 50e7633d5f27d81490026a13e5b92d2e42d8c6bb) (new rev dcaf50131e4810440bed2cbb6f7f32c4f4cc95dd)
Simon Menke (1):
      Using github.com/jackpal/gateway to discover NAT-PMP/PCP gateways

* github.com/fzzy/radix/redis (old rev 27a863cdffdb0998d13e1e11992b18489aeeaa25) (new rev 031cc11e9800a2626ee2ae629655a922b630a07d)
Brian Picciano (19):
      make cluster package thread-safe
      CHANGELOG
      update READMEs to have references to cluster
      throttle Reset calls in cluster
      change how options are passed around in cluster, and fix throttle
      CHANGELOG
      add a Pattern field to SubReply
      make DialTimeout actually use DialTimeout (requested by #53)
      fix bugs in cluster which prevented proper failover handling
      make cluster.getConn attempt to make the pool in question to better handle failover cases, also simplify moved logic a bit
      fix cluster test to handle the Reset throttle properly
      CHANGELOG
      refactor resp writing to not create an intermediate buffer and just write directly to the io.Writer
      small formatting fixes
      optimize flattening in resp to not create as many intermediate data structures
      refactor resp writing even further by making conn have a writeBuffer pre-allocated which resp simply appends to
      update cluster tests for newest testify code
      CHANGELOG
      CHANGELOG

Victor (1):
      add Reply.Float64() method

* github.com/gogo/protobuf (old rev 0ac967c269268f1af7d9bcc7927ccc9a589b2b36) (new rev b9e369e8ffb6773efc654ea13594566404314ee1)
Anton Povarov (1):
      simpler and more computationally efficient solution

Dwayne Schultz (4):
      Add checks in marshal/unmarshal for presence of required fields
      Improve compatibility
      Revert "Improve compatibility"
      Use import helper

Georg Apitz (2):
      Apply @anton-povarov's patch for bitmasks for missing required fields
      Add test for nested NinOptNative

John Tuley (11):
      Update artifacts from `make all`
      Test using `Marshal` instead of `MarshalTo`
      Use `proto.Marshal`/`proto.Unmarshal`
      Move NewRequiredNotSetError to encode_gogo.go
      Restore permissions on protoc-gen-gogo/main.go
      Remove empty lines
      Remove empty lines
      Check marshal error in requiredexamplepb_test.go
      Merge remote-tracking branch 'gogo/master'
      Add test for unmarshalling populated optional fields as required
      Add tests for required fields

Tamir Duberstein (1):
      Generate errcheck-passing code

Walter Schulze (4):
      regenerated code
      Merge pull request #51 from tamird/errcheck
      fixed errcheck for old protoc versions
      Merge pull request #48 from jmtuley/master

* github.com/hashicorp/golang-lru (old rev 253b2dc1ca8bae42c3b5b6e53dd2eab1a7551116) (new rev 995efda3e073b6946b175ed93901d729ad47466a)
Alexander Gugel (1):
      Add Contains, Peek

Armon Dadgar (6):
      Merge pull request #3 from blopker/master
      Merge pull request #4 from mreid-moz/add_onevict
      Merge pull request #6 from client9/master
      Merge pull request #8 from sciolizer/keys-order
      Merge pull request #10 from alexanderGugel/has-peek
      Merge pull request #12 from dkumor/master

Bo Lopker (1):
      Add RWMutex for read-only functions

Daniel Kumor (2):
      Fixed onEvict bug for Purge
      Added test for onEvicted interface value

Joshua Ball (1):
      Keys() preserves order

Kyle Kelley (1):
      fmt.Sprintf inside panic call

Mark Reid (6):
      Add an 'onEvict' function called when an element is removed.
      Export the "OnEvicted" function.
      Stop exposing the internals for eviction.
      Take a single lock to purge the cache.
      Purge in the correct LRU order.
      Call the evict function, then reset the cache.

Nick Galbreath (2):
      change Add method to return bool on eviction
      gofmt cleanup

Ryan Uber (1):
      Merge pull request #2 from rgbkrk/patch-1

* github.com/hashicorp/yamux (old rev 9feabe6854fadca1abec9cd3bd2a613fe9a34000) (new rev b2e55852ddaf823a85c67f798080eb7d08acd71d)
Armon Dadgar (5):
      Prevent Read on a closed stream
      Adding NumStreams to query open stream count
      Prevent deadlock with closeStream race
      Session close waits for receive loop to terminate
      Adding backpressure to Open to avoid RST

* github.com/howeyc/fsnotify (old rev 6b1ef893dc11e0447abda6da20a5203481878dda) (new rev 4894fe7efedeeef21891033e1cce3b23b9af7ad2)
Chris Howey (1):
      Merge pull request #109 from missdeer/master

Fan Yang (2):
      Update fsnotify_bsd.go
      Update fsnotify_open_bsd.go

* github.com/huin/goupnp (old rev 223008361153d7d434c1f0ac990cd3fcae6931f5) (new rev c57ae84388ab59076fd547f1abeab71c2edb0a21)
Felix Lange (1):
      soap: quote action names in header

Huin (1):
      Fix CharsetReader creation.

Jianfei Wang (1):
      support xml encoding other than utf-8

John Beisley (2):
      Merge branch 'fjl-soap-quote'
      Merge branch 'thinxer-master'

* github.com/jackpal/go-nat-pmp (old rev a45aa3d54aef73b504e15eb71bea0e5565b5e6e1) (new rev 46523a463303c6ede3ddfe45bde1c7ed52ebaacd)
Jack Palevich (1):
      Add NewClientForDefaultGateway, test of same.

* github.com/jbenet/go-peerstream (old rev 8d52ed2801410a2af995b4e87660272d11c8a9a4) (new rev 675a5da7e3500d73c2edc84565d6c46b540ad1b4)
Brian Tiger Chow (1):
      Update listener.go

Juan Batiz-Benet (1):
      Merge pull request #7 from briantigerchow/patch-1

* github.com/kardianos/osext (old rev 8fef92e41e22a70e700a96b29f066cda30ea24ef) (new rev 6e7f843663477789fac7c02def0d0909e969b4e5)
Daniel Theophanes (2):
      osext: do not return trailing slash in folder path.
      osext: state in readme that args[0] doesn't always work.

* github.com/miekg/dns (old rev 82ffc45b1f84ff71bd1cebed8b210118ce3d181e) (new rev bb1103f648f811d2018d4bedcb2d4b2bce34a0f1)
Alex Sergeyev (6):
      Issue with TLSA parsing identified
      Fixed SSHFP parsing when multiple lines used for text representation.
      Updated NSAP support according to RFC1706
      Fixed reversed logic.
      Support for almost all possible ways to format HINFO record
      Added comment to commented-out testcase

Mart Roosmaa (1):
      Use algorithm number to determine private key type.

Michael Haro (3):
      Check that the query ID matches the answer ID.
      Keep Exchange as it was, but still check ID.
      Cleanup Client.exchange

Miek Gieben (10):
      Merge pull request #207 from roosmaa/keyparse
      Merge pull request #208 from michaelharo/checkid
      Merge pull request #209 from michaelharo/client
      Merge commit '627287e675fb79f57928f77fbfae24abe15ed58b' into tlsa
      Playing with TLSA records
      Fix off-by-one on the maxTok and maxCom check
      Add TLSA parsing tests
      Check the l.err token errors
      Merge pull request #211 from miekg/tlsa
      Merge pull request #212 from asergeyev/master

* github.com/syndtr/goleveldb/leveldb (old rev 4875955338b0a434238a31165cb87255ab6e9e4a) (new rev 315fcfb05d4d46d4354b313d146ef688dda272a9)
Suryandaru Triandana (6):
      Merge pull request #106 from restlessbandit/getprop-errors
      leveldb: allows disabling buffer pool
      manualtest/dbstress: disable block cache and buffer pool by default
      memdb: use named constant instead of integer literal and Reset now holds lock
      leveldb: cleanup DB.recoverJournal(), memdb, session record and split session.go
      leveldb: allows open or puts DB into read-only mode (closes #107)

Travis J Parker (1):
      uses a public API error that can be compared against for invalid property names

* github.com/whyrusleeping/iptb (old rev 3970c95a864f1a40037f796ff596607ce8ae43be) (new rev fa9bbc437fae1c3a9410e7f1bc3dd02f0449279a)
Jeromy (1):
      bootstrap addrs cant be 0.0.0.0

* golang.org/x/crypto (old rev c84e1f8e3a7e322d497cd16c0e8a13c7e127baf3) (new rev ce6bda69189e9f4ff278a5e181691cd695f753ae)
Dmitry Savintsev (1):
      crypto/ssh: fix encoding of ssh certs with critical options

Han-Wen Nienhuys (1):
      x/crypto/ssh: bail early if a server has no auth methods configured.

Joel Sing (1):
      poly1305: fix compilation on arm with go tip

Jungho Ahn (1):
      x/crypto/poly1305: add ARM assembly

KB Sriram (1):
      x/crypto/openpgp: Limit packet recursion depth.

Shenghou Ma (1):
      ocsp: fix test on TZ=UTC systems

datianshi (1):
      ssh: add hmac-sha2-256.

* golang.org/x/net (old rev ff8eb9a34a5cbb9941ffc6f84a19a8014c2646ad) (new rev 589db58a47224e5786650dac2677b9c302bab6c2)
Dave Cheney (1):
      x/net/websocket: always close underlying connection on ws.Close

Ian Lance Taylor (1):
      html/charset/testdata: update licensing info in README

Mikio Hara (4):
      ipv4: fix build on linux/arm64
      ipv6: fix build on linux/arm64
      icmp: more coverage to ping test
      icmp: add missing attribute length check

Nigel Tao (7):
      webdav: skip XML-related tests on Go 1.4.
      webdav: make properties belong to the File(System), not a PropSystem.
      webdav: special-case the propfind_invalid2 litmus test.
      webdav: delete the PropSystem and MemPS types.
      webdav: add StripPrefix.
      webdav: have copyFiles copy dead properties.
      webdav: let DeadPropsHolder.DeadProps return an error.

Robert Stepanek (3):
      webdav: Add PROPPATCH support to in-memory property system.
      webdav: Return HTTP 404 for PROPFIND/PROPPATCH requests on an inexistent     webdav.Dir resource.
      webdav: Simplify handling of Etag and Content-Type headers for GET, HEAD,     POST and PUT requests.

* gopkg.in/natefinch/lumberjack.v2 (old rev d28785c2f27cd682d872df46ccd8232843629f54) (new rev 588a21fb0fa0ebdfde42670fa214576b6f0f22df)
Matt Silverlock (1):
      Fixed import in example test to use gopkg.in.

Nate Finch (2):
      Merge pull request #11 from elithrar/v2.0
      Fix bug #12
dc758b1c
Name Last commit Last update
Godeps godeps: update everything to master
assets use => Use
bin simple ipns-republish script stopgap
blocks blocks: Don't re-Put blocks we already have
blockservice blockservice/worker/bench/main: Add a package comment
cmd Move 'tour' to core/commands
commands Replace 'var * bytes.Buffer' with '\1 := new(bytes.Buffer)'
core Merge pull request #1274 from ipfs/refactor/importer
dev Reorged imports from jbenet/go-ipfs to ipfs/go-ipfs
diagnostics Run 'gofmt -s -w' on these files
docs docs: Probably helpful to link to the completion script
exchange Replace 'var * bytes.Buffer' with '\1 := new(bytes.Buffer)'
fuse Merge pull request #1274 from ipfs/refactor/importer
importer rename root to last
ipnsfs silence error log on shutdown
jenkins config: change default config dir name to .ipfs
merkledag Merge pull request #1274 from ipfs/refactor/importer
metrics bandwidth metering on streams
misc Template plist to work around launchd limitations
namesys namesys/namesys_test: Excercise mpns.ResolveN
notifications Reorged imports from jbenet/go-ipfs to ipfs/go-ipfs
p2p Merge pull request #1294 from rht/cleanup-tour
path Named error for `no components`
pin fix for #1008 and other pinning fixes
repo Merge pull request #1295 from ipfs/fix/lock-check
routing
test
thirdparty
tour
unixfs
updates
util
.artifact_files
.dockerignore
.gitignore
.gobuilder.yml
.travis.yml
CHANGELOG.md
Dockerfile
LICENSE
Makefile
README.md
dev.md
doc.go

ipfs implementation in go.

GoDoc Build Status

Ipfs is a global, versioned, peer-to-peer filesystem. It combines good ideas from Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single bittorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built in. You can also mount the world at /ipfs.

For more info see: https://github.com/ipfs/ipfs

Please put all issues regarding IPFS design in the ipfs repo issues. Please put all issues regarding go IPFS implementation in this repo.

Install

Install Go 1.4+. Then simply:

go get -u github.com/ipfs/go-ipfs/cmd/ipfs

NOTES:

  • git is required in order for go get to fetch all dependencies.
  • Package managers often contain out-of-date golang packages. Compilation from source is recommended.
  • If you are interested in development, please install the development dependencies as well.
  • WARNING: older versions of OSX FUSE (for Mac OS X) can cause kernel panics when mounting! We strongly recommend you use the latest version of OSX FUSE. (See https://github.com/ipfs/go-ipfs/issues/177)
  • For more details on setting up FUSE (so that you can mount the filesystem), see the docs folder
  • Shell command completion is available in misc/completion/ipfs-completion.bash. Read docs/command-completion.md to learn how to install it.

Usage

    ipfs - global p2p merkle-dag filesystem

    ipfs [<flags>] <command> [<arg>] ...

    Basic commands:
    
        init          Initialize ipfs local configuration
        add <path>    Add an object to ipfs
        cat <ref>     Show ipfs object data
        ls <ref>      List links from an object
    
    Tool commands:
    
        config        Manage configuration
        update        Download and apply go-ipfs updates
        version       Show ipfs version information
        commands      List all available commands
        id            Show info about ipfs peers
    
    Advanced Commands:
    
        daemon        Start a long-running daemon process
        mount         Mount an ipfs read-only mountpoint
        serve         Serve an interface to ipfs
        diag          Print diagnostics
    
    Plumbing commands:
    
        block         Interact with raw blocks in the datastore
        object        Interact with raw dag nodes
    
    Use 'ipfs <command> --help' to learn more about each command.

Getting Started

To start using ipfs, you must first initialize ipfs's config files on your system, this is done with ipfs init. See ipfs init --help for information on the optional arguments it takes. After initialization is complete, you can use ipfs mount, ipfs add and any of the other commands to explore!

Some things to try

Basic proof of 'ipfs working' locally:

echo "hello world" > hello
ipfs add hello
# This should output a hash string that looks something like:
# QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
ipfs cat <that hash>

Docker usage

An ipfs docker image is hosted at hub.docker.com/u/jbenet/go-ipfs. To make files visible inside the container you need to mount a host directory with the -v option to docker. Choose a directory that you want to use to import/export files from ipfs. You should also choose a directory to store ipfs files that will persist when you restart the container.

export ipfs_staging=</absolute/path/to/somewhere/>
export ipfs_data=</absolute/path/to/somewhere_else/>

Start a container running ipfs and expose ports 4001, 5001 and 8080:

docker run -d --name ipfs_host -v $ipfs_staging:/export -v $ipfs_data:/data/ipfs -p 8080:8080 -p 4001:4001 -p 5001:5001 jbenet/go-ipfs:latest

Watch the ipfs log:

docker logs -f ipfs_host

Wait for ipfs to start. ipfs is running when you see:

Gateway (readonly) server 
listening on /ip4/0.0.0.0/tcp/8080

(you can now stop watching the log)

Run ipfs commands:

docker exec ipfs_host ipfs <args...>

For example: connect to peers

docker exec ipfs_host ipfs swarm peers

Add files:

cp -r <something> $ipfs_staging
docker exec ipfs_host ipfs add -r /export/<something>

Stop the running container:

docker stop ipfs_host

Docker usage with VirtualBox/boot2docker (OSX and Windows)

Since docker is running in the boot2docker VM, you need to forward relevant ports from the VM to your host for ipfs act normally. This is accomplished with the following command:

boot2docker ssh -L 5001:localhost:5001 -L 4001:localhost:4001 -L 8080:localhost:8080 -fN

Troubleshooting

If you have previously installed ipfs before and you are running into problems getting a newer version to work, try deleting (or backing up somewhere else) your ipfs config directory (~/.ipfs by default) and rerunning ipfs init. This will reinitialize the config file to its defaults and clear out the local datastore of any bad entries.

For any other problems, check the issues list and if you dont see your problem there, either come talk to us on irc (freenode #ipfs) or file an issue of your own!

Contributing

go-ipfs is MIT licensed open source software. We welcome contributions big and small! Take a look at the community contributing notes. Please make sure to check the issues. Search the closed ones before reporting things, and help us with the open ones.

Guidelines:

  • see the dev pseudo-roadmap
  • please adhere to the protocol described in the main ipfs repo and paper.
  • please make branches + pull-request, even if working on the main repository
  • ask questions or talk about things in Issues or #ipfs on freenode.
  • ensure you are able to contribute (no legal issues please-- we'll probably setup a CLA)
  • run go fmt before pushing any code
  • run golint and go vet too -- some things (like protobuf files) are expected to fail.
  • if you'd like to work on ipfs part-time (20+ hrs/wk) or full-time (40+ hrs/wk), contact @jbenet
  • have fun!

Todo

An IPFS alpha version has been released in February 2015. Things left to be done are all marked as Issues

Development Dependencies

If you make changes to the protocol buffers, you will need to install the protoc compiler.

License

MIT