* feat: report block count on `dag import`
* fix: clean-up dag import message format
* Only print stats when --stats flag is passed
This applies to both text and json output encoding.
- Stats data is now contained within a Stats datastructure
- Stats are printed after root so that first line of output is the same as previously, even when stats are output using --stats
* fix sharness test
* Add PayloadBytesCount to stats
* Attempt to stabilize flaky tests
* Rename PayloadBytesCount to BlockBytesCount
* Correctly calculate size or imported dag
* Use RawSize of original block for import bytes calc
* test: dag import without --stats
basic regression tests for the default output (text and json)
Co-authored-by: gammazero <gammazero@users.noreply.github.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
(cherry picked from commit 0057199af4)
* Add a transcoder command to multibase
In order to more easily facilitate the conversion
between multibase formats, include a transcode command
to avoid `multibase decode | multibase encode`
* Example code needed go mod tidy
Co-authored-by: gammazero <gammazero@users.noreply.github.com>
(cherry picked from commit c89110920e)
* feat: added swarm peering command supporting add, ls and rm
Co-authored-by: Steven Allen <steven@stebalien.com>
(cherry picked from commit a651045c50)
When developing against ipfs/go-ipfs, we would like to be able to use
the 2xlarge resource class for faster build and test cycles, but many
external contributers will not have this resource class available to
them. There is no direct way to change the resource class, so this
uses dynamic config to generate a parameters JSON obj which is then
fed into the configuration when the workflow starts, based on the Git
URL of the build.
For repos other than ipfs/go-ipfs, this reverts back to the "medium"
resource class with a Make job parallelism of 3.
(cherry picked from commit b2c3959a4f)
- added dynamic buttons for packages/downloads which shows the latest version where possible
- dynamic next milestone buttons
- reordered to have package managers and docker on top, manual downloads afterwards
- remove the docker and the cli section, since they are covered equally in the docs + button links
- added more sections to the navigation, to find stuff easier
- dynamic go requirement version button
- some social media buttons
- general cleanup
(cherry picked from commit 04d1369a63)
The code example for using IPFS as a library doesn't run unless indirect dependencies are updated:
```
$ go version
go version go1.17 linux/amd64
$ uname -a
Linux home 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
$ go run main.go
go: github.com/ipfs/go-ipfs@v0.9.1 requires
github.com/ipfs/go-bitswap@v0.4.0: missing go.sum entry; to add it:
go mod download github.com/ipfs/go-bitswap
go: github.com/ipfs/go-ipfs@v0.9.1 requires
github.com/ipfs/go-bitswap@v0.4.0: missing go.sum entry; to add it:
go mod download github.com/ipfs/go-bitswap
```
Remedied by:
```
$ go mod tidy
$ go run main.go
-- Getting an IPFS node running --
Spawning node on a temporary repo
...
```
Also, require go version 1.16, otherwise, example can fail under go
1.15 with errors like:
```
go build github.com/lucas-clemente/quic-go/internal/qtls:
build constraints exclude all Go files in
/home/jbouwman/go/pkg/mod/github.com/lucas-clemente/quic-go@v0.23.0/internal/qtls
```
(cherry picked from commit cb189c7b78)
This preloads the peerlog plugin in the ipfs binary, but keeps it
disabled by default. To enabled it, set Enabled=true in its config.
The motivation is to simplify building and deploying gateways, and for
them to use binaries that are more similar to release bins.
(cherry picked from commit a35dd2ea0d)
Specifically, if you specify a commit, you get only that commit. This
means you get _nothing_ if you specify a merge commit.
Now, we specify to diff between a commit and it's (merge) parent.
(cherry picked from commit 4e132af3ef)
* feat: extract Bitswap fx initialization to its own file
* chore: bump go-bitswap dependency
* feat: bump go-ipfs-config dependency and utilize the new Internal.Bitswap configuration options. Add documentation around the new OptionalInteger config type as well as the Internal.Bitswap options.
* docs(docs/config.md): move the table of contents towards the top of the document and update it
Co-authored-by: Petar Maymounkov <petarm@gmail.com>
Co-authored-by: Marcin Rataj <lidel@lidel.org>
Co-authored-by: Gus Eggert <877588+guseggert@users.noreply.github.com>
* feat: switch to using go-ipld-prime for codecs, path resolution, and the `dag put/get` commands
* fix: `dag put/get` not roundtripping due to an extra new line being added (https://github.com/ipfs/go-ipfs/issues/3503)
More detailed information is in the CHANGELOG.md file. Very high level:
* IPLD codecs (and their plugins) must use go-ipld-prime
* Added support for the dag-json codec
* `dag get/put` use IPLD codec names from the multicodec table
* `dag get` defaults to dag-json output instead of json, but may output with other codecs
* Data model pathing can be achieved using the /ipld prefix. For example, you can use `/ipld/QmFoo/Links/0/Hash` to traverse through a DagPB node
* With `dag get/put` the DagPB field names have been changed to match the ones in the protobuf listed in the specification
Co-authored-by: hannahhoward <hannah@hannahhoward.net>
Co-authored-by: Daniel Martí <mvdan@mvdan.cc>
Co-authored-by: acruikshank <acruikshank@example.com>
Co-authored-by: Steven Allen <steven@stebalien.com>
Co-authored-by: Will Scott <will.scott@protocol.ai>
Co-authored-by: Will Scott <will@cypherpunk.email>
Co-authored-by: Rod Vagg <rod@vagg.org>
Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
Co-authored-by: Eric Myhre <hash@exultant.us>