@cryptotaxi247 / kubo / commits / cd1d4d445

core block service

Juan Batiz-Benet committed Jul 5, 2014 at 15:38 UTC cd1d4d44552665bc884aca6722f3ece8c675841c
1 file changed +24 -1
core/core.go
+24 -1
@@ -3,8 +3,11 @@ package core
3 import (
4 "fmt"
5 ds "github.com/jbenet/datastore.go"
6 + blocks "github.com/jbenet/go-ipfs/blocks"
7 config "github.com/jbenet/go-ipfs/config"
8 + merkledag "github.com/jbenet/go-ipfs/merkledag"
9 peer "github.com/jbenet/go-ipfs/peer"
10 + u "github.com/jbenet/go-ipfs/util"
11 )
12
13 // IPFS Core module. It represents an IPFS instance.
@@ -33,7 +36,7 @@ type IpfsNode struct {
36 // BitSwap *bitswap.BitSwap
37
38 // the block service, get/add blocks.
36 - // Blocks *blocks.BlockService
39 + Blocks *blocks.BlockService
40
41 // the path resolution system
42 // Resolver *resolver.PathResolver
@@ -52,11 +55,31 @@ func NewIpfsNode(cfg *config.Config) (*IpfsNode, error) {
55 return nil, err
56 }
57
58 + bs, err := blocks.NewBlockService(d)
59 + if err != nil {
60 + return nil, err
61 + }
62 +
63 n := &IpfsNode{
64 Config: cfg,
65 PeerBook: &peer.PeerBook{},
66 Datastore: d,
67 + Blocks: bs,
68 }
69
70 return n, nil
71 }
72 +
73 +func (n *IpfsNode) AddDagNode(nd *merkledag.Node) (u.Key, error) {
74 + d, err := nd.Encoded(false)
75 + if err != nil {
76 + return "", err
77 + }
78 +
79 + b, err := blocks.NewBlock(d)
80 + if err != nil {
81 + return "", err
82 + }
83 +
84 + return n.Blocks.AddBlock(b)
85 +}