@cryptotaxi247 / kubo / commits / 2b0bc7e08

configurable pubsub singing

I'd like to sneak this into the release so we can turn on strict verification ASAP. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Oct 25, 2018 at 10:47 UTC 2b0bc7e08463a24660830182249826228a79fc5b
31 files changed +167 -98
cmd/ipfs/init.go
+1 -1
@@ -16,7 +16,7 @@ import (
16 namesys "github.com/ipfs/go-ipfs/namesys"
17 fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
18
19 - "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
19 + "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
20 "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
21 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
22 )
cmd/ipfs/main.go
+1 -1
@@ -24,7 +24,7 @@ import (
24 repo "github.com/ipfs/go-ipfs/repo"
25 fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
26
27 - "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
27 + "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
28 u "gx/ipfs/QmPdKqUcHGFdeSpvjVoaTRPPstGif9GBZb5Q56RVw9o69A/go-ipfs-util"
29 "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
30 "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds/cli"
cmd/ipfswatch/main.go
+1 -1
@@ -15,7 +15,7 @@ import (
15 coreunix "github.com/ipfs/go-ipfs/core/coreunix"
16 fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
17
18 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
18 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
19 process "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess"
20 homedir "gx/ipfs/QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK/go-homedir"
21 fsnotify "gx/ipfs/QmfNjggF4Pt6erqg3NDafD3MdvDHk1qqCVr8pL5hnPucS8/fsnotify"
commands/request.go
+1 -1
@@ -10,7 +10,7 @@ import (
10 coreapi "github.com/ipfs/go-ipfs/core/coreapi"
11 coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
12
13 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
13 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
14 "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
15 files "gx/ipfs/QmZMWMvWMVKCbHetJ4RgndbuEF1io2UpUxwQwtNjtYPzSC/go-ipfs-files"
16 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
core/bootstrap.go
+1 -1
@@ -12,7 +12,7 @@ import (
12 math2 "github.com/ipfs/go-ipfs/thirdparty/math2"
13 lgbl "gx/ipfs/QmVrDtvvQCUeMZaY9UFkae6c85kdQ1GvVEhPrjPTdjxRLv/go-libp2p-loggables"
14
15 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
15 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
16 goprocess "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess"
17 procctx "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/context"
18 periodicproc "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/periodic"
core/bootstrap_test.go
+1 -1
@@ -4,7 +4,7 @@ import (
4 "fmt"
5 "testing"
6
7 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
7 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
8 pstore "gx/ipfs/QmTTJcDL3gsnGDALjh2fDGg1onGRUdVgNL2hU2WEZcVrMX/go-libp2p-peerstore"
9 testutil "gx/ipfs/Qma6ESRQTf1ZLPgzpCwDTqQJefPnU6uLvMjP18vK8EWp8L/go-testutil"
10 )
core/builder.go
+1 -1
@@ -19,7 +19,7 @@ import (
19 bserv "gx/ipfs/QmWfhv1D18DRSiSm73r4QGcByspzPtxxRTcmHW3axFXZo8/go-blockservice"
20 dag "gx/ipfs/QmY8BMUSpCwNiTmFhACmC9Bt1qT63cHP35AoQAus4x14qH/go-merkledag"
21
22 - cfg "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
22 + cfg "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
23 ci "gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
24 goprocessctx "gx/ipfs/QmSF8fPo3jgVBAy8fpdjjYqgG87dkJgUprRBHRd2tmfgpP/goprocess/context"
25 offline "gx/ipfs/QmT6dHGp3UYd3vUMpy7rzX2CXQv7HLcj42Vtq8qwwjgASb/go-ipfs-exchange-offline"
core/commands/bootstrap.go
+1 -1
@@ -11,7 +11,7 @@ import (
11 repo "github.com/ipfs/go-ipfs/repo"
12 "github.com/ipfs/go-ipfs/repo/fsrepo"
13
14 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
14 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
15 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
16 )
17
core/commands/cmdenv/env.go
+1 -1
@@ -7,7 +7,7 @@ import (
7 "github.com/ipfs/go-ipfs/core"
8 coreiface "github.com/ipfs/go-ipfs/core/coreapi/interface"
9
10 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
10 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
11 cmds "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
12 )
13
core/commands/config.go
+1 -1
@@ -16,8 +16,8 @@ import (
16 repo "github.com/ipfs/go-ipfs/repo"
17 fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
18
19 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
19 "gx/ipfs/QmP2i47tnU23ijdshrZtuvrSkQPtf9HhsMb9fwGVe8owj2/jsondiff"
20 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
21 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
22 )
23
core/commands/mount_unix.go
+1 -1
@@ -11,7 +11,7 @@ import (
11 e "github.com/ipfs/go-ipfs/core/commands/e"
12 nodeMount "github.com/ipfs/go-ipfs/fuse/node"
13
14 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
14 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
15 "gx/ipfs/Qmde5VP1qUkyQXKCfmEUA7bP64V2HAptbJ7phuPp7jXWwg/go-ipfs-cmdkit"
16 )
17
core/commands/repo.go
+1 -1
@@ -17,7 +17,7 @@ import (
17 corerepo "github.com/ipfs/go-ipfs/core/corerepo"
18 fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
19
20 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
20 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
21 cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
22 cmds "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
23 bstore "gx/ipfs/QmcDDgAXDbpDUpadCJKLr49KYR4HuL7T8Z1dZTHt6ixsoR/go-ipfs-blockstore"
core/commands/swarm.go
+1 -1
@@ -14,7 +14,7 @@ import (
14 "github.com/ipfs/go-ipfs/repo"
15 "github.com/ipfs/go-ipfs/repo/fsrepo"
16
17 - "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
17 + "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
18 "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
19 mafilter "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
20 ma "gx/ipfs/QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9/go-multiaddr"
core/core.go
+14 -5
@@ -30,12 +30,11 @@ import (
30 pin "github.com/ipfs/go-ipfs/pin"
31 repo "github.com/ipfs/go-ipfs/repo"
32
33 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
33 bitswap "gx/ipfs/QmNkxFCmPtr2RQxjZNRCNryLud4L9wMEiBJsLgF14MqTHj/go-bitswap"
34 bsnet "gx/ipfs/QmNkxFCmPtr2RQxjZNRCNryLud4L9wMEiBJsLgF14MqTHj/go-bitswap/network"
35 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
36 cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
37 u "gx/ipfs/QmPdKqUcHGFdeSpvjVoaTRPPstGif9GBZb5Q56RVw9o69A/go-ipfs-util"
38 - psrouter "gx/ipfs/QmPgUM9uSnDuM8MAF56htHLMLn33KuUqT82PBsF13qyJNk/go-libp2p-pubsub-router"
38 ic "gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
39 dht "gx/ipfs/QmQHnqaNULV8WeUGgh97o9K3KAW6kWQmDyNf9UuikgnPTe/go-libp2p-kad-dht"
40 dhtopts "gx/ipfs/QmQHnqaNULV8WeUGgh97o9K3KAW6kWQmDyNf9UuikgnPTe/go-libp2p-kad-dht/opts"
@@ -45,6 +44,7 @@ import (
44 mamask "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
45 ma "gx/ipfs/QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9/go-multiaddr"
46 ft "gx/ipfs/QmTJUySFxXjh54zEoFbzQEmGD3yj89XKS3A28y7Nqsn1TC/go-unixfs"
47 + pubsub "gx/ipfs/QmTQdS71yMtTmaSeeGptMDxDBpRcq2kTsJ6X2CPd7riyMs/go-libp2p-pubsub"
48 peer "gx/ipfs/QmTRhk7cgjUf2gfQ3p2M9KPECNZEW9XUrmHcFCgog4cPgB/go-libp2p-peer"
49 connmgr "gx/ipfs/QmTSih5JrkhMH62dp1oGjEwcaC38dxXBgRwTbeQEL4mPcU/go-libp2p-connmgr"
50 pstore "gx/ipfs/QmTTJcDL3gsnGDALjh2fDGg1onGRUdVgNL2hU2WEZcVrMX/go-libp2p-peerstore"
@@ -58,12 +58,12 @@ import (
58 circuit "gx/ipfs/QmVYDvJjiKb9iFEyHxx4i1TJSRBLkQhGb5Fc8XpmDuNCEA/go-libp2p-circuit"
59 ifconnmgr "gx/ipfs/QmWRvjn5BHMLCGkf48Hk1LDc4W72RPA9H59AAVCXmn9esJ/go-libp2p-interface-connmgr"
60 bserv "gx/ipfs/QmWfhv1D18DRSiSm73r4QGcByspzPtxxRTcmHW3axFXZo8/go-blockservice"
61 + psrouter "gx/ipfs/QmWqQVkbYzC8himRvPCWmkfpFuYtHidY7xEKtrrQ3dhySs/go-libp2p-pubsub-router"
62 rhelpers "gx/ipfs/QmX3syBjwRd12qJGaKbFBWFfrBinKsaTC43ry3PsgiXCLK/go-libp2p-routing-helpers"
63 pnet "gx/ipfs/QmY4Q5JC4vxLEi8EpVxJM4rcRryEVtH1zRKVTAm6BKV1pg/go-libp2p-pnet"
64 merkledag "gx/ipfs/QmY8BMUSpCwNiTmFhACmC9Bt1qT63cHP35AoQAus4x14qH/go-merkledag"
65 smux "gx/ipfs/QmY9JXR3FupnYAYJWK9aMr9bCpqWKcToQ1tz8DVGTrHpHw/go-stream-muxer"
66 logging "gx/ipfs/QmZChCsSt8DctjceaL56Eibc29CVQq4dGKRXC5JRZ6Ppae/go-log"
66 - pubsub "gx/ipfs/QmZuwf2M6vSPpHh9KWp59HFq3kAibka77hAbKhxeb7uW3T/go-libp2p-pubsub"
67 record "gx/ipfs/Qma9Eqp16mNHDX1EL73pcxhFfzbyXVcAYtaDd1xdmDRDtL/go-libp2p-record"
68 ds "gx/ipfs/QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D/go-datastore"
69 mplex "gx/ipfs/QmaveCPGVaKJU57tBErGCDjzLaqEMZkFygoiv4BhYwWUGc/go-smux-multiplex"
@@ -475,14 +475,23 @@ func (n *IpfsNode) startOnlineServicesWithHost(ctx context.Context, host p2phost
475
476 var service *pubsub.PubSub
477
478 + var pubsubOptions []pubsub.Option
479 + if cfg.Pubsub.DisableSigning {
480 + pubsubOptions = append(pubsubOptions, pubsub.WithMessageSigning(false))
481 + }
482 +
483 + if cfg.Pubsub.StrictSignatureVerification {
484 + pubsubOptions = append(pubsubOptions, pubsub.WithStrictSignatureVerification(true))
485 + }
486 +
487 switch cfg.Pubsub.Router {
488 case "":
489 fallthrough
490 case "floodsub":
482 - service, err = pubsub.NewFloodSub(ctx, host)
491 + service, err = pubsub.NewFloodSub(ctx, host, pubsubOptions...)
492
493 case "gossipsub":
485 - service, err = pubsub.NewGossipSub(ctx, host)
494 + service, err = pubsub.NewGossipSub(ctx, host, pubsubOptions...)
495
496 default:
497 err = fmt.Errorf("Unknown pubsub router %s", cfg.Pubsub.Router)
core/core_test.go
+1 -1
@@ -7,7 +7,7 @@ import (
7
8 "github.com/ipfs/go-ipfs/repo"
9
10 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
10 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
11 datastore "gx/ipfs/QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D/go-datastore"
12 syncds "gx/ipfs/QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D/go-datastore/sync"
13 )
core/coreapi/pubsub.go
+1 -1
@@ -12,9 +12,9 @@ import (
12 caopts "github.com/ipfs/go-ipfs/core/coreapi/interface/options"
13
14 cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
15 + pubsub "gx/ipfs/QmTQdS71yMtTmaSeeGptMDxDBpRcq2kTsJ6X2CPd7riyMs/go-libp2p-pubsub"
16 peer "gx/ipfs/QmTRhk7cgjUf2gfQ3p2M9KPECNZEW9XUrmHcFCgog4cPgB/go-libp2p-peer"
17 pstore "gx/ipfs/QmTTJcDL3gsnGDALjh2fDGg1onGRUdVgNL2hU2WEZcVrMX/go-libp2p-peerstore"
17 - pubsub "gx/ipfs/QmZuwf2M6vSPpHh9KWp59HFq3kAibka77hAbKhxeb7uW3T/go-libp2p-pubsub"
18 )
19
20 type PubSubAPI CoreAPI
core/coreapi/unixfs_test.go
+1 -1
@@ -23,7 +23,7 @@ import (
23 "github.com/ipfs/go-ipfs/keystore"
24 "github.com/ipfs/go-ipfs/repo"
25
26 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
26 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
27 mh "gx/ipfs/QmPnFwZ2JXKnXgMw8CdBPxn7FWh6LLdjUjxV1fKHuJnkr8/go-multihash"
28 ci "gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
29 unixfs "gx/ipfs/QmTJUySFxXjh54zEoFbzQEmGD3yj89XKS3A28y7Nqsn1TC/go-unixfs"
core/corehttp/commands.go
+1 -1
@@ -14,7 +14,7 @@ import (
14 "github.com/ipfs/go-ipfs/core"
15 corecommands "github.com/ipfs/go-ipfs/core/commands"
16
17 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
17 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
18 path "gx/ipfs/QmRKuTyCzg7HFBcV1YUhzStroGtJSb8iWgyxfsDCwFhWTS/go-path"
19 cmds "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds"
20 cmdsHttp "gx/ipfs/QmRRovo1DE6i5cMjCbf19mQCSuszF6SKwdZNUMS7MtBnH1/go-ipfs-cmds/http"
core/corehttp/gateway_test.go
+1 -1
@@ -18,7 +18,7 @@ import (
18 nsopts "github.com/ipfs/go-ipfs/namesys/opts"
19 repo "github.com/ipfs/go-ipfs/repo"
20
21 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
21 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
22 ci "gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
23 path "gx/ipfs/QmRKuTyCzg7HFBcV1YUhzStroGtJSb8iWgyxfsDCwFhWTS/go-path"
24 id "gx/ipfs/QmUDTcnDp2WssbmiDLC6aYurUeyt7QeRakHUQMxA2mZ5iB/go-libp2p/p2p/protocol/identify"
core/coreunix/add_test.go
+1 -1
@@ -15,7 +15,7 @@ import (
15 "github.com/ipfs/go-ipfs/pin/gc"
16 "github.com/ipfs/go-ipfs/repo"
17
18 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
18 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
19 pi "gx/ipfs/QmPG32VXR5jmpo9q8R9FNdR4Ae97Ky9CiZE6SctJLUB79H/go-ipfs-posinfo"
20 cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
21 blocks "gx/ipfs/QmRcHuYzAyswytBuMF78rj3LTChYszomRFXNg4685ZN1WM/go-block-format"
core/mock/mock.go
+1 -1
@@ -7,7 +7,7 @@ import (
7 core "github.com/ipfs/go-ipfs/core"
8 "github.com/ipfs/go-ipfs/repo"
9
10 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
10 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
11 peer "gx/ipfs/QmTRhk7cgjUf2gfQ3p2M9KPECNZEW9XUrmHcFCgog4cPgB/go-libp2p-peer"
12 pstore "gx/ipfs/QmTTJcDL3gsnGDALjh2fDGg1onGRUdVgNL2hU2WEZcVrMX/go-libp2p-peerstore"
13 libp2p "gx/ipfs/QmUDTcnDp2WssbmiDLC6aYurUeyt7QeRakHUQMxA2mZ5iB/go-libp2p"
package.json
+8 -8
@@ -47,9 +47,9 @@
47 "version": "0.1.3"
48 },
49 {
50 - "hash": "QmPwecoMB9jN9DosznNqcApK63PnrEmMduxp1mn5nqS7Pq",
50 + "hash": "QmV1DPm5F46LvQMxCVPhu35zHgZEeMvyVtpxjb5TwfGiua",
51 "name": "iptb",
52 - "version": "1.3.18"
52 + "version": "1.3.19"
53 },
54 {
55 "hash": "QmPnFwZ2JXKnXgMw8CdBPxn7FWh6LLdjUjxV1fKHuJnkr8",
@@ -458,9 +458,9 @@
458 },
459 {
460 "author": "stebalien",
461 - "hash": "QmPgUM9uSnDuM8MAF56htHLMLn33KuUqT82PBsF13qyJNk",
461 + "hash": "QmWqQVkbYzC8himRvPCWmkfpFuYtHidY7xEKtrrQ3dhySs",
462 "name": "go-libp2p-pubsub-router",
463 - "version": "0.4.14"
463 + "version": "0.5.1"
464 },
465 {
466 "author": "Stebalien",
@@ -518,9 +518,9 @@
518 },
519 {
520 "author": "magik6k",
521 - "hash": "QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6",
521 + "hash": "QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR",
522 "name": "go-ipfs-config",
523 - "version": "0.2.15"
523 + "version": "0.2.16"
524 },
525 {
526 "author": "why",
@@ -583,9 +583,9 @@
583 },
584 {
585 "author": "whyrusleeping",
586 - "hash": "QmZuwf2M6vSPpHh9KWp59HFq3kAibka77hAbKhxeb7uW3T",
586 + "hash": "QmTQdS71yMtTmaSeeGptMDxDBpRcq2kTsJ6X2CPd7riyMs",
587 "name": "go-libp2p-pubsub",
588 - "version": "0.10.2"
588 + "version": "0.11.1"
589 }
590 ],
591 "gxVersion": "0.10.0",
repo/fsrepo/config_test.go
+1 -1
@@ -7,7 +7,7 @@ import (
7 "reflect"
8 "testing"
9
10 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
10 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
11 )
12
13 // note: to test sorting of the mountpoints in the disk spec they are
repo/fsrepo/fsrepo.go
+2 -2
@@ -18,8 +18,8 @@ import (
18 mfsr "github.com/ipfs/go-ipfs/repo/fsrepo/migrations"
19 dir "github.com/ipfs/go-ipfs/thirdparty/dir"
20
21 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
22 - serialize "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config/serialize"
21 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
22 + serialize "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config/serialize"
23 util "gx/ipfs/QmPdKqUcHGFdeSpvjVoaTRPPstGif9GBZb5Q56RVw9o69A/go-ipfs-util"
24 measure "gx/ipfs/QmQS6UXi1R87y9nEgnCNmG6YfMzvBSLir7xUheMNFP3hoe/go-ds-measure"
25 ma "gx/ipfs/QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9/go-multiaddr"
repo/fsrepo/fsrepo_test.go
+1 -1
@@ -9,7 +9,7 @@ import (
9
10 "github.com/ipfs/go-ipfs/thirdparty/assert"
11
12 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
12 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
13 datastore "gx/ipfs/QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D/go-datastore"
14 )
15
repo/fsrepo/misc.go
+1 -1
@@ -3,7 +3,7 @@ package fsrepo
3 import (
4 "os"
5
6 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
6 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
7 homedir "gx/ipfs/QmdcULN1WCzgoQmcCaUAmEhwcxHYsDrbZ2LvRJKCL8dMrK/go-homedir"
8 )
9
repo/mock.go
+1 -1
@@ -6,7 +6,7 @@ import (
6 filestore "github.com/ipfs/go-ipfs/filestore"
7 keystore "github.com/ipfs/go-ipfs/keystore"
8
9 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
9 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
10 ma "gx/ipfs/QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9/go-multiaddr"
11 )
12
repo/repo.go
+1 -1
@@ -7,7 +7,7 @@ import (
7 filestore "github.com/ipfs/go-ipfs/filestore"
8 keystore "github.com/ipfs/go-ipfs/keystore"
9
10 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
10 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
11 ma "gx/ipfs/QmT4U94DnD8FRfqr21obWY32HLM5VExccPKMjQHofeYqr9/go-multiaddr"
12 ds "gx/ipfs/QmaRb5yNXKonhbkpNxNawoydk4N6es6b4fPj19sjEKsh5D/go-datastore"
13 )
test/bench/bench_cli_ipfs_add/main.go
+1 -1
@@ -12,7 +12,7 @@ import (
12
13 "github.com/ipfs/go-ipfs/thirdparty/unit"
14
15 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
15 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
16 random "gx/ipfs/QmSJ9n2s9NUoA9D849W5jj5SJ94nMcZpj1jCgQJieiNqSt/go-random"
17 )
18
test/bench/offline_add/main.go
+1 -1
@@ -11,7 +11,7 @@ import (
11
12 "github.com/ipfs/go-ipfs/thirdparty/unit"
13
14 - config "gx/ipfs/QmNUhkTWN7iynJZTj1RcTsQDSRGGkh87zMo9ELypxhY8Y6/go-ipfs-config"
14 + config "gx/ipfs/QmPEpj17FDRpc7K1aArKZp3RsHtzRMKykeK9GVgn4WQGPR/go-ipfs-config"
15 random "gx/ipfs/QmSJ9n2s9NUoA9D849W5jj5SJ94nMcZpj1jCgQJieiNqSt/go-random"
16 )
17
test/sharness/t0180-pubsub.sh
+116 -56
@@ -10,83 +10,143 @@ test_expect_success 'init iptb' '
10 iptb init -n $NUM_NODES --bootstrap=none --port=0
11 '
12
13 -startup_cluster $NUM_NODES --enable-pubsub-experiment
13 +run_pubsub_tests() {
14 + test_expect_success 'peer ids' '
15 + PEERID_0=$(iptb get id 0) &&
16 + PEERID_2=$(iptb get id 2)
17 + '
18 +
19 + # ipfs pubsub sub
20 + test_expect_success 'pubsub' '
21 + echo "testOK" > expected &&
22 + touch empty &&
23 + mkfifo wait ||
24 + test_fsh echo init fail
25 +
26 + # ipfs pubsub sub is long-running so we need to start it in the background and
27 + # wait put its output somewhere where we can access it
28 + (
29 + ipfsi 0 pubsub sub --enc=ndpayload testTopic | if read line; then
30 + echo $line > actual &&
31 + echo > wait
32 + fi
33 + ) &
34 + '
35 +
36 + test_expect_success "wait until ipfs pubsub sub is ready to do work" '
37 + go-sleep 500ms
38 + '
39 +
40 + test_expect_success "can see peer subscribed to testTopic" '
41 + ipfsi 1 pubsub peers testTopic > peers_out
42 + '
43 +
44 + test_expect_success "output looks good" '
45 + echo $PEERID_0 > peers_exp &&
46 + test_cmp peers_exp peers_out
47 + '
48 +
49 + test_expect_success "publish something" '
50 + ipfsi 1 pubsub pub testTopic "testOK" &> pubErr
51 + '
52 +
53 + test_expect_success "wait until echo > wait executed" '
54 + cat wait &&
55 + test_cmp pubErr empty &&
56 + test_cmp expected actual
57 + '
58 +
59 + test_expect_success "wait for another pubsub message" '
60 + echo "testOK2" > expected &&
61 + mkfifo wait2 ||
62 + test_fsh echo init fail
63 +
64 + # ipfs pubsub sub is long-running so we need to start it in the background and
65 + # wait put its output somewhere where we can access it
66 + (
67 + ipfsi 2 pubsub sub --enc=ndpayload testTopic | if read line; then
68 + echo $line > actual &&
69 + echo > wait2
70 + fi
71 + ) &
72 + '
73 +
74 + test_expect_success "wait until ipfs pubsub sub is ready to do work" '
75 + go-sleep 500ms
76 + '
77 +
78 + test_expect_success "publish something" '
79 + echo "testOK2" | ipfsi 3 pubsub pub testTopic &> pubErr
80 + '
81 +
82 + test_expect_success "wait until echo > wait executed" '
83 + echo "testOK2" > expected &&
84 + cat wait2 &&
85 + test_cmp pubErr empty &&
86 + test_cmp expected actual
87 + '
88 +
89 + test_expect_success 'cleanup fifos' '
90 + rm -f wait wait2
91 + '
92 +
93 +}
94 +
95 +# Normal tests
96
15 -test_expect_success 'peer ids' '
16 - PEERID_0=$(iptb get id 0) &&
17 - PEERID_2=$(iptb get id 2)
97 +startup_cluster $NUM_NODES --enable-pubsub-experiment
98 +run_pubsub_tests
99 +test_expect_success 'stop iptb' '
100 + iptb stop
101 '
102
20 -# ipfs pubsub sub
21 -test_expect_success 'pubsub' '
22 - echo "testOK" > expected &&
23 - touch empty &&
24 - mkfifo wait ||
25 - test_fsh echo init fail
26 -
27 - # ipfs pubsub sub is long-running so we need to start it in the background and
28 - # wait put its output somewhere where we can access it
29 - (
30 - ipfsi 0 pubsub sub --enc=ndpayload testTopic | if read line; then
31 - echo $line > actual &&
32 - echo > wait
33 - fi
34 - ) &
35 -'
103 +# Test with some nodes not signing messages.
104
37 -test_expect_success "wait until ipfs pubsub sub is ready to do work" '
38 - go-sleep 500ms
105 +test_expect_success 'disable signing on node 1' '
106 + ipfsi 1 config --json Pubsub.DisableSigning true
107 '
108
41 -test_expect_success "can see peer subscribed to testTopic" '
42 - ipfsi 1 pubsub peers testTopic > peers_out
109 +startup_cluster $NUM_NODES --enable-pubsub-experiment
110 +run_pubsub_tests
111 +test_expect_success 'stop iptb' '
112 + iptb stop
113 '
114
45 -test_expect_success "output looks good" '
46 - echo $PEERID_0 > peers_exp &&
47 - test_cmp peers_exp peers_out
48 -'
115 +# Test strict message verification.
116
50 -test_expect_success "publish something" '
51 - ipfsi 1 pubsub pub testTopic "testOK" &> pubErr
117 +test_expect_success 'enable strict signature verification on node 4' '
118 + ipfsi 4 config --json Pubsub.StrictSignatureVerification true
119 '
120
54 -test_expect_success "wait until echo > wait executed" '
55 - cat wait &&
56 - test_cmp pubErr empty &&
57 - test_cmp expected actual
121 +startup_cluster $NUM_NODES --enable-pubsub-experiment
122 +
123 +test_expect_success 'set node 4 to listen on testTopic' '
124 + ipfsi 4 pubsub sub --enc=ndpayload testTopic > node4_actual &
125 '
126
60 -test_expect_success "wait for another pubsub message" '
61 - echo "testOK2" > expected &&
62 - mkfifo wait2 ||
63 - test_fsh echo init fail
64 -
65 - # ipfs pubsub sub is long-running so we need to start it in the background and
66 - # wait put its output somewhere where we can access it
67 - (
68 - ipfsi 2 pubsub sub --enc=ndpayload testTopic | if read line; then
69 - echo $line > actual &&
70 - echo > wait2
71 - fi
72 - ) &
127 +run_pubsub_tests
128 +
129 +test_expect_success 'stop iptb' '
130 + iptb stop
131 '
132
75 -test_expect_success "wait until ipfs pubsub sub is ready to do work" '
76 - go-sleep 500ms
133 +test_expect_success 'node 4 only got the signed message' '
134 + echo "testOK2" > node4_expected &&
135 + test_cmp node4_actual node4_expected
136 '
137
79 -test_expect_success "publish something" '
80 - echo "testOK2" | ipfsi 1 pubsub pub testTopic &> pubErr
138 +# Test all nodes signing with strict verification
139 +
140 +test_expect_success 're-enable signing on node 1' '
141 + ipfsi 1 config --json Pubsub.DisableSigning false
142 '
143
83 -test_expect_success "wait until echo > wait executed" '
84 - echo "testOK2" > expected &&
85 - cat wait2 &&
86 - test_cmp pubErr empty &&
87 - test_cmp expected actual
144 +test_expect_success 'enable strict signature verification on all nodes' '
145 + iptb for-each ipfs config --json Pubsub.StrictSignatureVerification true
146 '
147
148 +startup_cluster $NUM_NODES --enable-pubsub-experiment
149 +run_pubsub_tests
150 test_expect_success 'stop iptb' '
151 iptb stop
152 '