Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
a11c59dc
提交
a11c59dc
authored
11月 11, 2014
作者:
Brian Tiger Chow
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(peer) add Type (Unspecified, Local, Remote)
上级
ac845154
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
60 行增加
和
0 行删除
+60
-0
core.go
core/core.go
+5
-0
core_test.go
core/core_test.go
+17
-0
peer.go
peer/peer.go
+30
-0
peer_test.go
peer/peer_test.go
+8
-0
没有找到文件。
core/core.go
浏览文件 @
a11c59dc
...
...
@@ -211,6 +211,11 @@ func initIdentity(cfg *config.Identity, peers peer.Peerstore, online bool) (peer
if
err
!=
nil
{
return
nil
,
err
}
self
.
SetType
(
peer
.
Local
)
self
,
err
=
peers
.
Add
(
self
)
if
err
!=
nil
{
return
nil
,
err
}
// when not online, don't need to parse private keys (yet)
if
online
{
...
...
core/core_test.go
浏览文件 @
a11c59dc
...
...
@@ -4,6 +4,7 @@ import (
"testing"
config
"github.com/jbenet/go-ipfs/config"
"github.com/jbenet/go-ipfs/peer"
)
func
TestInitialization
(
t
*
testing
.
T
)
{
...
...
@@ -57,6 +58,22 @@ func TestInitialization(t *testing.T) {
}
}
func
TestPeerIsLocal
(
t
*
testing
.
T
)
{
t
.
Log
(
"Ensure that peer is Local after initializing identity"
)
online
:=
false
peers
:=
peer
.
NewPeerstore
()
cfg
:=
testIdentity
p
,
err
:=
initIdentity
(
&
cfg
,
peers
,
online
)
if
err
!=
nil
{
t
.
Fatal
(
err
)
}
if
p
.
GetType
()
!=
peer
.
Local
{
t
.
Fail
()
}
}
var
testIdentity
=
config
.
Identity
{
PeerID
:
"QmNgdzLieYi8tgfo2WfTUzNVH5hQK9oAYGVf6dxN12NrHt"
,
PrivKey
:
"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"
,
...
...
peer/peer.go
浏览文件 @
a11c59dc
...
...
@@ -95,10 +95,23 @@ type Peer interface {
GetLatency
()
(
out
time
.
Duration
)
SetLatency
(
laten
time
.
Duration
)
// Get/SetType indicate whether this is a local or remote peer
GetType
()
Type
SetType
(
Type
)
// Update with the data of another peer instance
Update
(
Peer
)
error
}
type
Type
uint8
const
(
// Unspecified indicates peer was created without specifying Type
Unspecified
Type
=
iota
Local
Remote
)
type
peer
struct
{
id
ID
addresses
[]
ma
.
Multiaddr
...
...
@@ -111,6 +124,9 @@ type peer struct {
// within that package, map from ID to latency value.
latency
time
.
Duration
// typ can be Local, Remote, or Unspecified (default)
typ
Type
sync
.
RWMutex
}
...
...
@@ -222,6 +238,18 @@ func (p *peer) SetLatency(laten time.Duration) {
p
.
Unlock
()
}
func
(
p
*
peer
)
SetType
(
t
Type
)
{
p
.
Lock
()
p
.
typ
=
t
defer
p
.
Unlock
()
}
func
(
p
*
peer
)
GetType
()
Type
{
p
.
Lock
()
defer
p
.
Unlock
()
return
p
.
typ
}
// LoadAndVerifyKeyPair unmarshalls, loads a private/public key pair.
// Error if (a) unmarshalling fails, or (b) pubkey does not match id.
func
(
p
*
peer
)
LoadAndVerifyKeyPair
(
marshalled
[]
byte
)
error
{
...
...
@@ -306,6 +334,8 @@ func (p *peer) Update(other Peer) error {
p
.
SetLatency
(
other
.
GetLatency
())
p
.
SetType
(
other
.
GetType
())
sk
:=
other
.
PrivKey
()
pk
:=
other
.
PubKey
()
p
.
Lock
()
...
...
peer/peer_test.go
浏览文件 @
a11c59dc
...
...
@@ -55,3 +55,11 @@ func TestStringMethodWithSmallId(t *testing.T) {
}
p1
.
String
()
}
func
TestDefaultType
(
t
*
testing
.
T
)
{
t
.
Log
(
"Ensure that peers are initialized to Unspecified by default"
)
p
:=
peer
{}
if
p
.
GetType
()
!=
Unspecified
{
t
.
Fatalf
(
"Peer's default type is was not `Unspecified`"
)
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论