Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mybee
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
mybee
Commits
c3ec18a0
Unverified
Commit
c3ec18a0
authored
May 18, 2020
by
Janoš Guljaš
Committed by
GitHub
May 18, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
construct overlay address with network id (#190)
parent
3f97ad93
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
27 additions
and
26 deletions
+27
-26
start.go
cmd/bee/cmd/start.go
+2
-2
crypto.go
pkg/crypto/crypto.go
+7
-3
crypto_test.go
pkg/crypto/crypto_test.go
+1
-1
key.go
pkg/keystore/file/key.go
+2
-5
node.go
pkg/node/node.go
+2
-2
handshake.go
pkg/p2p/libp2p/internal/handshake/handshake.go
+3
-3
handshake.pb.go
pkg/p2p/libp2p/internal/handshake/pb/handshake.pb.go
+6
-6
handshake.proto
pkg/p2p/libp2p/internal/handshake/pb/handshake.proto
+1
-1
libp2p.go
pkg/p2p/libp2p/libp2p.go
+2
-2
libp2p_test.go
pkg/p2p/libp2p/libp2p_test.go
+1
-1
No files found.
cmd/bee/cmd/start.go
View file @
c3ec18a0
...
...
@@ -99,7 +99,7 @@ func (c *command) initStartCmd() (err error) {
Addr
:
c
.
config
.
GetString
(
optionNameP2PAddr
),
DisableWS
:
c
.
config
.
GetBool
(
optionNameP2PDisableWS
),
DisableQUIC
:
c
.
config
.
GetBool
(
optionNameP2PDisableQUIC
),
NetworkID
:
c
.
config
.
Get
Int32
(
optionNameNetworkID
),
NetworkID
:
c
.
config
.
Get
Uint64
(
optionNameNetworkID
),
Bootnodes
:
c
.
config
.
GetStringSlice
(
optionNameBootnodes
),
TracingEnabled
:
c
.
config
.
GetBool
(
optionNameTracingEnabled
),
TracingEndpoint
:
c
.
config
.
GetString
(
optionNameTracingEndpoint
),
...
...
@@ -159,7 +159,7 @@ func (c *command) initStartCmd() (err error) {
cmd
.
Flags
()
.
StringSlice
(
optionNameBootnodes
,
nil
,
"initial nodes to connect to"
)
cmd
.
Flags
()
.
Bool
(
optionNameEnableDebugAPI
,
false
,
"enable debug HTTP API"
)
cmd
.
Flags
()
.
String
(
optionNameDebugAPIAddr
,
":6060"
,
"debug HTTP API listen address"
)
cmd
.
Flags
()
.
Int32
(
optionNameNetworkID
,
1
,
"ID of the Swarm network"
)
cmd
.
Flags
()
.
Uint64
(
optionNameNetworkID
,
1
,
"ID of the Swarm network"
)
cmd
.
Flags
()
.
Bool
(
optionNameTracingEnabled
,
false
,
"enable tracing"
)
cmd
.
Flags
()
.
String
(
optionNameTracingEndpoint
,
"127.0.0.1:6831"
,
"endpoint to send tracing data"
)
cmd
.
Flags
()
.
String
(
optionNameTracingServiceName
,
"bee"
,
"service name identifier for tracing"
)
...
...
pkg/crypto/crypto.go
View file @
c3ec18a0
...
...
@@ -8,6 +8,7 @@ import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"encoding/binary"
"fmt"
"github.com/btcsuite/btcd/btcec"
...
...
@@ -15,9 +16,12 @@ import (
"golang.org/x/crypto/sha3"
)
// NewAddress constructs a Swarm Address from ECDSA private key.
func
NewAddress
(
p
ecdsa
.
PublicKey
)
swarm
.
Address
{
h
:=
sha3
.
Sum256
(
elliptic
.
Marshal
(
btcec
.
S256
(),
p
.
X
,
p
.
Y
))
// NewOverlayAddress constructs a Swarm Address from ECDSA private key.
func
NewOverlayAddress
(
p
ecdsa
.
PublicKey
,
networkID
uint64
)
swarm
.
Address
{
data
:=
make
([]
byte
,
28
)
copy
(
data
,
elliptic
.
Marshal
(
btcec
.
S256
(),
p
.
X
,
p
.
Y
)[
12
:
32
])
binary
.
LittleEndian
.
PutUint64
(
data
[
20
:
28
],
networkID
)
h
:=
sha3
.
Sum256
(
data
)
return
swarm
.
NewAddress
(
h
[
:
])
}
...
...
pkg/crypto/crypto_test.go
View file @
c3ec18a0
...
...
@@ -37,7 +37,7 @@ func TestNewAddress(t *testing.T) {
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
a
:=
crypto
.
New
Address
(
k
.
PublicKey
)
a
:=
crypto
.
New
OverlayAddress
(
k
.
PublicKey
,
1
)
if
l
:=
len
(
a
.
Bytes
());
l
!=
32
{
t
.
Errorf
(
"got address length %v, want %v"
,
l
,
32
)
}
...
...
pkg/keystore/file/key.go
View file @
c3ec18a0
...
...
@@ -17,7 +17,6 @@ import (
"github.com/ethersphere/bee/pkg/crypto"
"github.com/ethersphere/bee/pkg/keystore"
"github.com/ethersphere/bee/pkg/swarm"
"golang.org/x/crypto/scrypt"
"golang.org/x/crypto/sha3"
)
...
...
@@ -35,7 +34,6 @@ const (
)
type
encryptedKey
struct
{
Address
swarm
.
Address
`json:"address"`
Crypto
keyCripto
`json:"crypto"`
Version
int
`json:"version"`
}
...
...
@@ -68,7 +66,6 @@ func encryptKey(k *ecdsa.PrivateKey, password string) ([]byte, error) {
return
nil
,
err
}
return
json
.
Marshal
(
encryptedKey
{
Address
:
crypto
.
NewAddress
(
k
.
PublicKey
),
Crypto
:
*
kc
,
Version
:
keyVersion
,
})
...
...
pkg/node/node.go
View file @
c3ec18a0
...
...
@@ -65,7 +65,7 @@ type Options struct {
Addr
string
DisableWS
bool
DisableQUIC
bool
NetworkID
int32
NetworkID
uint64
Bootnodes
[]
string
Logger
logging
.
Logger
TracingEnabled
bool
...
...
@@ -105,7 +105,7 @@ func NewBee(o Options) (*Bee, error) {
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"swarm key: %w"
,
err
)
}
address
:=
crypto
.
New
Address
(
swarmPrivateKey
.
PublicKey
)
address
:=
crypto
.
New
OverlayAddress
(
swarmPrivateKey
.
PublicKey
,
o
.
NetworkID
)
if
created
{
logger
.
Info
(
"new swarm key created"
)
}
...
...
pkg/p2p/libp2p/internal/handshake/handshake.go
View file @
c3ec18a0
...
...
@@ -42,7 +42,7 @@ type PeerFinder interface {
type
Service
struct
{
overlay
swarm
.
Address
networkID
int32
networkID
uint64
receivedHandshakes
map
[
libp2ppeer
.
ID
]
struct
{}
receivedHandshakesMu
sync
.
Mutex
logger
logging
.
Logger
...
...
@@ -50,7 +50,7 @@ type Service struct {
network
.
Notifiee
// handhsake service can be the receiver for network.Notify
}
func
New
(
overlay
swarm
.
Address
,
networkID
int32
,
logger
logging
.
Logger
)
*
Service
{
func
New
(
overlay
swarm
.
Address
,
networkID
uint64
,
logger
logging
.
Logger
)
*
Service
{
return
&
Service
{
overlay
:
overlay
,
networkID
:
networkID
,
...
...
@@ -146,6 +146,6 @@ func (s *Service) Disconnected(_ network.Network, c network.Conn) {
type
Info
struct
{
Address
swarm
.
Address
NetworkID
int32
NetworkID
uint64
Light
bool
}
pkg/p2p/libp2p/internal/handshake/pb/handshake.pb.go
View file @
c3ec18a0
...
...
@@ -24,7 +24,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
type
Syn
struct
{
Address
[]
byte
`protobuf:"bytes,1,opt,name=Address,proto3" json:"Address,omitempty"`
NetworkID
int32
`protobuf:"varint,2,opt,name=NetworkID,proto3" json:"NetworkID,omitempty"`
NetworkID
uint64
`protobuf:"varint,2,opt,name=NetworkID,proto3" json:"NetworkID,omitempty"`
Light
bool
`protobuf:"varint,3,opt,name=Light,proto3" json:"Light,omitempty"`
}
...
...
@@ -68,7 +68,7 @@ func (m *Syn) GetAddress() []byte {
return
nil
}
func
(
m
*
Syn
)
GetNetworkID
()
int32
{
func
(
m
*
Syn
)
GetNetworkID
()
uint64
{
if
m
!=
nil
{
return
m
.
NetworkID
}
...
...
@@ -192,15 +192,15 @@ var fileDescriptor_a77305914d5d202f = []byte{
0x29
,
0xce
,
0x48
,
0xcc
,
0x4e
,
0xd5
,
0x2b
,
0x28
,
0xca
,
0x2f
,
0xc9
,
0x17
,
0xe2
,
0x84
,
0x0b
,
0x28
,
0x05
,
0x73
,
0x31
,
0x07
,
0x57
,
0xe6
,
0x09
,
0x49
,
0x70
,
0xb1
,
0x3b
,
0xa6
,
0xa4
,
0x14
,
0xa5
,
0x16
,
0x17
,
0x4b
,
0x30
,
0x2a
,
0x30
,
0x6a
,
0xf0
,
0x04
,
0xc1
,
0xb8
,
0x42
,
0x32
,
0x5c
,
0x9c
,
0x7e
,
0xa9
,
0x25
,
0xe5
,
0xf9
,
0x45
,
0xd9
,
0x9e
,
0x2e
,
0x12
,
0x4c
,
0x0a
,
0x8c
,
0x1a
,
0x
a
c
,
0x41
,
0x08
,
0x01
,
0x25
,
0xe5
,
0xf9
,
0x45
,
0xd9
,
0x9e
,
0x2e
,
0x12
,
0x4c
,
0x0a
,
0x8c
,
0x1a
,
0x
2
c
,
0x41
,
0x08
,
0x01
,
0x21
,
0x11
,
0x2e
,
0x56
,
0x9f
,
0xcc
,
0xf4
,
0x8c
,
0x12
,
0x09
,
0x66
,
0x05
,
0x46
,
0x0d
,
0x8e
,
0x20
,
0x08
,
0x47
,
0xc9
,
0x87
,
0x8b
,
0x2d
,
0xb8
,
0x32
,
0xcf
,
0x31
,
0x39
,
0x5b
,
0x48
,
0x01
,
0x6c
,
0x3c
,
0xd8
,
0x4c
,
0x6e
,
0x23
,
0x3e
,
0x3d
,
0x84
,
0x43
,
0x82
,
0x2b
,
0xf3
,
0x82
,
0xc0
,
0x36
,
0x2b
,
0x70
,
0x31
,
0x3b
,
0x26
,
0x67
,
0x83
,
0x4d
,
0x46
,
0x55
,
0xe1
,
0x98
,
0x9c
,
0x1d
,
0x04
,
0x92
,
0x52
,
0x92
,
0x07
,
0xab
,
0xc0
,
0xed
,
0x44
,
0x27
,
0x99
,
0x13
,
0x8f
,
0xe4
,
0x18
,
0x2f
,
0x3c
,
0x92
,
0x63
,
0x7c
,
0xf0
,
0x48
,
0x8e
,
0x71
,
0xc2
,
0x63
,
0x39
,
0x86
,
0x0b
,
0x8f
,
0xe5
,
0x18
,
0x6e
,
0x3c
,
0x96
,
0x63
,
0x88
,
0x62
,
0x2a
,
0x48
,
0x4a
,
0x62
,
0x03
,
0xfb
,
0xd9
,
0x18
,
0x10
,
0x00
,
0x00
,
0xff
,
0xff
,
0x
53
,
0x
fe
,
0x4c
,
0x62
,
0x06
,
0x01
,
0x00
,
0x00
,
0x88
,
0x62
,
0x2a
,
0x48
,
0x4a
,
0x62
,
0x03
,
0xfb
,
0xd9
,
0x18
,
0x10
,
0x00
,
0x00
,
0xff
,
0xff
,
0x
04
,
0x
2c
,
0x04
,
0x89
,
0x06
,
0x01
,
0x00
,
0x00
,
}
func
(
m
*
Syn
)
Marshal
()
(
dAtA
[]
byte
,
err
error
)
{
...
...
@@ -468,7 +468,7 @@ func (m *Syn) Unmarshal(dAtA []byte) error {
}
b
:=
dAtA
[
iNdEx
]
iNdEx
++
m
.
NetworkID
|=
int32
(
b
&
0x7F
)
<<
shift
m
.
NetworkID
|=
uint64
(
b
&
0x7F
)
<<
shift
if
b
<
0x80
{
break
}
...
...
pkg/p2p/libp2p/internal/handshake/pb/handshake.proto
View file @
c3ec18a0
...
...
@@ -10,7 +10,7 @@ option go_package = "pb";
message
Syn
{
bytes
Address
=
1
;
int32
NetworkID
=
2
;
uint64
NetworkID
=
2
;
bool
Light
=
3
;
}
...
...
pkg/p2p/libp2p/libp2p.go
View file @
c3ec18a0
...
...
@@ -44,7 +44,7 @@ type Service struct {
host
host
.
Host
libp2pPeerstore
peerstore
.
Peerstore
metrics
metrics
networkID
int32
networkID
uint64
handshakeService
*
handshake
.
Service
addrssbook
addressbook
.
Putter
peers
*
peerRegistry
...
...
@@ -60,7 +60,7 @@ type Options struct {
Addr
string
DisableWS
bool
DisableQUIC
bool
NetworkID
int32
NetworkID
uint64
Addressbook
addressbook
.
Putter
Logger
logging
.
Logger
Tracer
*
tracing
.
Tracer
...
...
pkg/p2p/libp2p/libp2p_test.go
View file @
c3ec18a0
...
...
@@ -40,7 +40,7 @@ func newService(t *testing.T, o libp2p.Options) (s *libp2p.Service, overlay swar
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
o
.
Overlay
=
crypto
.
New
Address
(
swarmPK
.
PublicKey
)
o
.
Overlay
=
crypto
.
New
OverlayAddress
(
swarmPK
.
PublicKey
,
o
.
NetworkID
)
}
if
o
.
Logger
==
nil
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment