1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-28 17:03:58 +08:00

some comments

This commit is contained in:
Jeromy
2015-01-16 23:53:56 +00:00
parent feeada0d90
commit a5233faeae
5 changed files with 14 additions and 1 deletions

View File

@ -355,6 +355,9 @@ func (n *IpfsNode) loadPrivateKey() error {
return nil
}
// SetupOfflineRouting loads the local nodes private key and
// uses it to instantiate a routing system in offline mode.
// This is primarily used for offline ipns modifications.
func (n *IpfsNode) SetupOfflineRouting() error {
err := n.loadPrivateKey()
if err != nil {

View File

@ -33,6 +33,8 @@ var (
longRepublishTimeout = time.Millisecond * 500
)
// InitializeKeyspace sets the ipns record for the given key to
// point to an empty directory.
func InitializeKeyspace(n *core.IpfsNode, key ci.PrivKey) error {
emptyDir := &mdag.Node{Data: ft.FolderPBData()}
k, err := n.DAG.Add(emptyDir)

View File

@ -235,6 +235,8 @@ func (dht *IpfsDHT) getLocal(key u.Key) ([]byte, error) {
return rec.GetValue(), nil
}
// getOwnPrivateKey attempts to load the local peers private
// key from the peerstore.
func (dht *IpfsDHT) getOwnPrivateKey() (ci.PrivKey, error) {
sk := dht.peerstore.PrivKey(dht.self)
if sk == nil {

View File

@ -42,7 +42,7 @@ func RecordBlobForSig(r *pb.Record) []byte {
return bytes.Join([][]byte{k, v, a}, []byte{})
}
// creates and signs a dht record for the given key/value pair
// MakePutRecord creates and signs a dht record for the given key/value pair
func MakePutRecord(sk ci.PrivKey, key u.Key, value []byte) (*pb.Record, error) {
record := new(pb.Record)
@ -175,6 +175,8 @@ func (dht *IpfsDHT) verifyRecordOnline(ctx context.Context, r *pb.Record) error
return dht.verifyRecord(r, pk)
}
// TODO: make this an independent exported function.
// it might be useful for users to have access to.
func (dht *IpfsDHT) verifyRecord(r *pb.Record, pk ci.PubKey) error {
// First, validate the signature
blob := RecordBlobForSig(r)

View File

@ -27,6 +27,9 @@ func NewOfflineRouter(dstore ds.Datastore, privkey ci.PrivKey) routing.IpfsRouti
}
}
// offlineRouting implements the IpfsRouting interface,
// but only provides the capability to Put and Get signed dht
// records to and from the local datastore.
type offlineRouting struct {
datastore ds.Datastore
sk ci.PrivKey
@ -86,4 +89,5 @@ func (c *offlineRouting) Ping(ctx context.Context, p peer.ID) (time.Duration, er
return 0, ErrOffline
}
// ensure offlineRouting matches the IpfsRouting interface
var _ routing.IpfsRouting = &offlineRouting{}