swarm/storage/feed: Renamed package

This commit is contained in:
Javier Peletier 2018-10-03 09:15:17 +02:00
parent 696bc9b01c
commit de01178c18
39 changed files with 129 additions and 129 deletions

2
.github/CODEOWNERS vendored

@ -27,6 +27,6 @@ swarm/services @zelig
swarm/state @justelad swarm/state @justelad
swarm/storage/encryption @gbalint @zelig @nagydani swarm/storage/encryption @gbalint @zelig @nagydani
swarm/storage/mock @janos swarm/storage/mock @janos
swarm/storage/feeds @nolash @jpeletier swarm/storage/feed @nolash @jpeletier
swarm/testutil @lmars swarm/testutil @lmars
whisper/ @gballet @gluk256 whisper/ @gballet @gluk256

@ -27,15 +27,15 @@ import (
"github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/cmd/utils"
swarm "github.com/ethereum/go-ethereum/swarm/api/client" swarm "github.com/ethereum/go-ethereum/swarm/api/client"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"gopkg.in/urfave/cli.v1" "gopkg.in/urfave/cli.v1"
) )
func NewGenericSigner(ctx *cli.Context) feeds.Signer { func NewGenericSigner(ctx *cli.Context) feed.Signer {
return feeds.NewGenericSigner(getPrivKey(ctx)) return feed.NewGenericSigner(getPrivKey(ctx))
} }
func getTopic(ctx *cli.Context) (topic feeds.Topic) { func getTopic(ctx *cli.Context) (topic feed.Topic) {
var name = ctx.String(SwarmFeedNameFlag.Name) var name = ctx.String(SwarmFeedNameFlag.Name)
var relatedTopic = ctx.String(SwarmFeedTopicFlag.Name) var relatedTopic = ctx.String(SwarmFeedTopicFlag.Name)
var relatedTopicBytes []byte var relatedTopicBytes []byte
@ -48,7 +48,7 @@ func getTopic(ctx *cli.Context) (topic feeds.Topic) {
} }
} }
topic, err = feeds.NewTopic(name, relatedTopicBytes) topic, err = feed.NewTopic(name, relatedTopicBytes)
if err != nil { if err != nil {
utils.Fatalf("Error parsing topic: %s", err) utils.Fatalf("Error parsing topic: %s", err)
} }
@ -65,7 +65,7 @@ func feedCreateManifest(ctx *cli.Context) {
client = swarm.NewClient(bzzapi) client = swarm.NewClient(bzzapi)
) )
newFeedUpdateRequest := feeds.NewFirstRequest(getTopic(ctx)) newFeedUpdateRequest := feed.NewFirstRequest(getTopic(ctx))
newFeedUpdateRequest.Feed.User = feedGetUser(ctx) newFeedUpdateRequest.Feed.User = feedGetUser(ctx)
manifestAddress, err := client.CreateFeedWithManifest(newFeedUpdateRequest) manifestAddress, err := client.CreateFeedWithManifest(newFeedUpdateRequest)
@ -100,11 +100,11 @@ func feedUpdate(ctx *cli.Context) {
return return
} }
var updateRequest *feeds.Request var updateRequest *feed.Request
var query *feeds.Query var query *feed.Query
if manifestAddressOrDomain == "" { if manifestAddressOrDomain == "" {
query = new(feeds.Query) query = new(feed.Query)
query.User = signer.Address() query.User = signer.Address()
query.Topic = getTopic(ctx) query.Topic = getTopic(ctx)
@ -139,9 +139,9 @@ func feedInfo(ctx *cli.Context) {
manifestAddressOrDomain = ctx.String(SwarmFeedManifestFlag.Name) manifestAddressOrDomain = ctx.String(SwarmFeedManifestFlag.Name)
) )
var query *feeds.Query var query *feed.Query
if manifestAddressOrDomain == "" { if manifestAddressOrDomain == "" {
query = new(feeds.Query) query = new(feed.Query)
query.Topic = getTopic(ctx) query.Topic = getTopic(ctx)
query.User = feedGetUser(ctx) query.User = feedGetUser(ctx)
} }

@ -26,11 +26,11 @@ import (
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/api" "github.com/ethereum/go-ethereum/swarm/api"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
"github.com/ethereum/go-ethereum/swarm/testutil" "github.com/ethereum/go-ethereum/swarm/testutil"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
@ -65,7 +65,7 @@ func TestCLIFeedUpdate(t *testing.T) {
} }
// compose a topic. We'll be doing quotes about Miguel de Cervantes // compose a topic. We'll be doing quotes about Miguel de Cervantes
var topic feeds.Topic var topic feed.Topic
subject := []byte("Miguel de Cervantes") subject := []byte("Miguel de Cervantes")
copy(topic[:], subject[:]) copy(topic[:], subject[:])
name := "quotes" name := "quotes"
@ -95,19 +95,19 @@ func TestCLIFeedUpdate(t *testing.T) {
// build the same topic as before, this time // build the same topic as before, this time
// we use NewTopic to create a topic automatically. // we use NewTopic to create a topic automatically.
topic, err = feeds.NewTopic(name, subject) topic, err = feed.NewTopic(name, subject)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
// Feed configures whose updates we will be looking up. // Feed configures whose updates we will be looking up.
fd := feeds.Feed{ fd := feed.Feed{
Topic: topic, Topic: topic,
User: address, User: address,
} }
// Build a query to get the latest update // Build a query to get the latest update
query := feeds.NewQueryLatest(&fd, lookup.NoClue) query := feed.NewQueryLatest(&fd, lookup.NoClue)
// retrieve content! // retrieve content!
reader, err := client.QueryFeed(query, "") reader, err := client.QueryFeed(query, "")
@ -139,7 +139,7 @@ func TestCLIFeedUpdate(t *testing.T) {
cmd.ExpectExit() cmd.ExpectExit()
// verify we can deserialize the result as a valid JSON // verify we can deserialize the result as a valid JSON
var request feeds.Request var request feed.Request
err = json.Unmarshal([]byte(matches[0]), &request) err = json.Unmarshal([]byte(matches[0]), &request)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)

@ -22,5 +22,5 @@ swarm
├── storage ─────────────── ethersphere ├── storage ─────────────── ethersphere
│ ├── encryption ──────── @gbalint, @zelig, @nagydani │ ├── encryption ──────── @gbalint, @zelig, @nagydani
│ ├── mock ────────────── @janos │ ├── mock ────────────── @janos
│ └── feeds ───────────── @nolash, @jpeletier │ └── feed ───────────── @nolash, @jpeletier
└── testutil ────────────── @lmars └── testutil ────────────── @lmars

@ -45,8 +45,8 @@ import (
"github.com/ethereum/go-ethereum/swarm/multihash" "github.com/ethereum/go-ethereum/swarm/multihash"
"github.com/ethereum/go-ethereum/swarm/spancontext" "github.com/ethereum/go-ethereum/swarm/spancontext"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
opentracing "github.com/opentracing/opentracing-go" opentracing "github.com/opentracing/opentracing-go"
) )
@ -236,18 +236,18 @@ on top of the FileStore
it is the public interface of the FileStore which is included in the ethereum stack it is the public interface of the FileStore which is included in the ethereum stack
*/ */
type API struct { type API struct {
feeds *feeds.Handler feed *feed.Handler
fileStore *storage.FileStore fileStore *storage.FileStore
dns Resolver dns Resolver
Decryptor func(context.Context, string) DecryptFunc Decryptor func(context.Context, string) DecryptFunc
} }
// NewAPI the api constructor initialises a new API instance. // NewAPI the api constructor initialises a new API instance.
func NewAPI(fileStore *storage.FileStore, dns Resolver, feedsHandler *feeds.Handler, pk *ecdsa.PrivateKey) (self *API) { func NewAPI(fileStore *storage.FileStore, dns Resolver, feedHandler *feed.Handler, pk *ecdsa.PrivateKey) (self *API) {
self = &API{ self = &API{
fileStore: fileStore, fileStore: fileStore,
dns: dns, dns: dns,
feeds: feedsHandler, feed: feedHandler,
Decryptor: func(ctx context.Context, credentials string) DecryptFunc { Decryptor: func(ctx context.Context, credentials string) DecryptFunc {
return self.doDecrypt(ctx, credentials, pk) return self.doDecrypt(ctx, credentials, pk)
}, },
@ -409,7 +409,7 @@ func (a *API) Get(ctx context.Context, decrypt DecryptFunc, manifestAddr storage
if entry.Feed == nil { if entry.Feed == nil {
return reader, mimeType, status, nil, fmt.Errorf("Cannot decode Feed in manifest") return reader, mimeType, status, nil, fmt.Errorf("Cannot decode Feed in manifest")
} }
_, err := a.feeds.Lookup(ctx, feeds.NewQueryLatest(entry.Feed, lookup.NoClue)) _, err := a.feed.Lookup(ctx, feed.NewQueryLatest(entry.Feed, lookup.NoClue))
if err != nil { if err != nil {
apiGetNotFound.Inc(1) apiGetNotFound.Inc(1)
status = http.StatusNotFound status = http.StatusNotFound
@ -417,7 +417,7 @@ func (a *API) Get(ctx context.Context, decrypt DecryptFunc, manifestAddr storage
return reader, mimeType, status, nil, err return reader, mimeType, status, nil, err
} }
// get the data of the update // get the data of the update
_, rsrcData, err := a.feeds.GetContent(entry.Feed) _, rsrcData, err := a.feed.GetContent(entry.Feed)
if err != nil { if err != nil {
apiGetNotFound.Inc(1) apiGetNotFound.Inc(1)
status = http.StatusNotFound status = http.StatusNotFound
@ -958,13 +958,13 @@ func (a *API) BuildDirectoryTree(ctx context.Context, mhash string, nameresolver
} }
// FeedsLookup finds Swarm feeds updates at specific points in time, or the latest update // FeedsLookup finds Swarm feeds updates at specific points in time, or the latest update
func (a *API) FeedsLookup(ctx context.Context, query *feeds.Query) ([]byte, error) { func (a *API) FeedsLookup(ctx context.Context, query *feed.Query) ([]byte, error) {
_, err := a.feeds.Lookup(ctx, query) _, err := a.feed.Lookup(ctx, query)
if err != nil { if err != nil {
return nil, err return nil, err
} }
var data []byte var data []byte
_, data, err = a.feeds.GetContent(&query.Feed) _, data, err = a.feed.GetContent(&query.Feed)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -972,18 +972,18 @@ func (a *API) FeedsLookup(ctx context.Context, query *feeds.Query) ([]byte, erro
} }
// FeedsNewRequest creates a Request object to update a specific feed // FeedsNewRequest creates a Request object to update a specific feed
func (a *API) FeedsNewRequest(ctx context.Context, feed *feeds.Feed) (*feeds.Request, error) { func (a *API) FeedsNewRequest(ctx context.Context, feed *feed.Feed) (*feed.Request, error) {
return a.feeds.NewRequest(ctx, feed) return a.feed.NewRequest(ctx, feed)
} }
// FeedsUpdate publishes a new update on the given feed // FeedsUpdate publishes a new update on the given feed
func (a *API) FeedsUpdate(ctx context.Context, request *feeds.Request) (storage.Address, error) { func (a *API) FeedsUpdate(ctx context.Context, request *feed.Request) (storage.Address, error) {
return a.feeds.Update(ctx, request) return a.feed.Update(ctx, request)
} }
// FeedsHashSize returned the size of the digest produced by Swarm feeds' hashing function // FeedsHashSize returned the size of the digest produced by Swarm feeds' hashing function
func (a *API) FeedsHashSize() int { func (a *API) FeedsHashSize() int {
return a.feeds.HashSize return a.feed.HashSize
} }
// ErrCannotLoadFeedManifest is returned when looking up a feeds manifest fails // ErrCannotLoadFeedManifest is returned when looking up a feeds manifest fails
@ -993,7 +993,7 @@ var ErrCannotLoadFeedManifest = errors.New("Cannot load feed manifest")
var ErrNotAFeedManifest = errors.New("Not a feed manifest") var ErrNotAFeedManifest = errors.New("Not a feed manifest")
// ResolveFeedManifest retrieves the Swarm feed manifest for the given address, and returns the referenced Feed. // ResolveFeedManifest retrieves the Swarm feed manifest for the given address, and returns the referenced Feed.
func (a *API) ResolveFeedManifest(ctx context.Context, addr storage.Address) (*feeds.Feed, error) { func (a *API) ResolveFeedManifest(ctx context.Context, addr storage.Address) (*feed.Feed, error) {
trie, err := loadManifest(ctx, a.fileStore, addr, nil, NOOPDecrypt) trie, err := loadManifest(ctx, a.fileStore, addr, nil, NOOPDecrypt)
if err != nil { if err != nil {
return nil, ErrCannotLoadFeedManifest return nil, ErrCannotLoadFeedManifest
@ -1016,8 +1016,8 @@ var ErrCannotResolveFeed = errors.New("Cannot resolve Feed")
// ResolveFeed attempts to extract feed information out of the manifest, if provided // ResolveFeed attempts to extract feed information out of the manifest, if provided
// If not, it attempts to extract the feed out of a set of key-value pairs // If not, it attempts to extract the feed out of a set of key-value pairs
func (a *API) ResolveFeed(ctx context.Context, uri *URI, values feeds.Values) (*feeds.Feed, error) { func (a *API) ResolveFeed(ctx context.Context, uri *URI, values feed.Values) (*feed.Feed, error) {
var feed *feeds.Feed var fd *feed.Feed
var err error var err error
if uri.Addr != "" { if uri.Addr != "" {
// resolve the content key. // resolve the content key.
@ -1030,20 +1030,20 @@ func (a *API) ResolveFeed(ctx context.Context, uri *URI, values feeds.Values) (*
} }
// get the Swarm feed from the manifest // get the Swarm feed from the manifest
feed, err = a.ResolveFeedManifest(ctx, manifestAddr) fd, err = a.ResolveFeedManifest(ctx, manifestAddr)
if err != nil { if err != nil {
return nil, err return nil, err
} }
log.Debug("handle.get.feed: resolved", "manifestkey", manifestAddr, "feed", feed.Hex()) log.Debug("handle.get.feed: resolved", "manifestkey", manifestAddr, "feed", fd.Hex())
} else { } else {
var v feeds.Feed var f feed.Feed
if err := v.FromValues(values); err != nil { if err := f.FromValues(values); err != nil {
return nil, ErrCannotResolveFeed return nil, ErrCannotResolveFeed
} }
feed = &v fd = &f
} }
return feed, nil return fd, nil
} }
// MimeOctetStream default value of http Content-Type header // MimeOctetStream default value of http Content-Type header

@ -35,7 +35,7 @@ import (
"strings" "strings"
"github.com/ethereum/go-ethereum/swarm/api" "github.com/ethereum/go-ethereum/swarm/api"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
) )
var ( var (
@ -608,7 +608,7 @@ var ErrNoFeedUpdatesFound = errors.New("No updates found for this feed")
// data // data
// Returns the resulting feed manifest address that you can use to include in an ENS Resolver (setContent) // Returns the resulting feed manifest address that you can use to include in an ENS Resolver (setContent)
// or reference future updates (Client.UpdateFeed) // or reference future updates (Client.UpdateFeed)
func (c *Client) CreateFeedWithManifest(request *feeds.Request) (string, error) { func (c *Client) CreateFeedWithManifest(request *feed.Request) (string, error) {
responseStream, err := c.updateFeed(request, true) responseStream, err := c.updateFeed(request, true)
if err != nil { if err != nil {
return "", err return "", err
@ -628,12 +628,12 @@ func (c *Client) CreateFeedWithManifest(request *feeds.Request) (string, error)
} }
// UpdateFeed allows you to set a new version of your content // UpdateFeed allows you to set a new version of your content
func (c *Client) UpdateFeed(request *feeds.Request) error { func (c *Client) UpdateFeed(request *feed.Request) error {
_, err := c.updateFeed(request, false) _, err := c.updateFeed(request, false)
return err return err
} }
func (c *Client) updateFeed(request *feeds.Request, createManifest bool) (io.ReadCloser, error) { func (c *Client) updateFeed(request *feed.Request, createManifest bool) (io.ReadCloser, error) {
URL, err := url.Parse(c.Gateway) URL, err := url.Parse(c.Gateway)
if err != nil { if err != nil {
return nil, err return nil, err
@ -662,7 +662,7 @@ func (c *Client) updateFeed(request *feeds.Request, createManifest bool) (io.Rea
// QueryFeed returns a byte stream with the raw content of the feed update // QueryFeed returns a byte stream with the raw content of the feed update
// manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver // manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver
// points to that address // points to that address
func (c *Client) QueryFeed(query *feeds.Query, manifestAddressOrDomain string) (io.ReadCloser, error) { func (c *Client) QueryFeed(query *feed.Query, manifestAddressOrDomain string) (io.ReadCloser, error) {
return c.queryFeed(query, manifestAddressOrDomain, false) return c.queryFeed(query, manifestAddressOrDomain, false)
} }
@ -670,7 +670,7 @@ func (c *Client) QueryFeed(query *feeds.Query, manifestAddressOrDomain string) (
// manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver // manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver
// points to that address // points to that address
// meta set to true will instruct the node return feed metainformation instead // meta set to true will instruct the node return feed metainformation instead
func (c *Client) queryFeed(query *feeds.Query, manifestAddressOrDomain string, meta bool) (io.ReadCloser, error) { func (c *Client) queryFeed(query *feed.Query, manifestAddressOrDomain string, meta bool) (io.ReadCloser, error) {
URL, err := url.Parse(c.Gateway) URL, err := url.Parse(c.Gateway)
if err != nil { if err != nil {
return nil, err return nil, err
@ -709,7 +709,7 @@ func (c *Client) queryFeed(query *feeds.Query, manifestAddressOrDomain string, m
// GetFeedRequest returns a structure that describes the referenced feed status // GetFeedRequest returns a structure that describes the referenced feed status
// manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver // manifestAddressOrDomain is the address you obtained in CreateFeedWithManifest or an ENS domain whose Resolver
// points to that address // points to that address
func (c *Client) GetFeedRequest(query *feeds.Query, manifestAddressOrDomain string) (*feeds.Request, error) { func (c *Client) GetFeedRequest(query *feed.Query, manifestAddressOrDomain string) (*feed.Request, error) {
responseStream, err := c.queryFeed(query, manifestAddressOrDomain, true) responseStream, err := c.queryFeed(query, manifestAddressOrDomain, true)
if err != nil { if err != nil {
@ -722,7 +722,7 @@ func (c *Client) GetFeedRequest(query *feeds.Query, manifestAddressOrDomain stri
return nil, err return nil, err
} }
var metadata feeds.Request var metadata feed.Request
if err := metadata.UnmarshalJSON(body); err != nil { if err := metadata.UnmarshalJSON(body); err != nil {
return nil, err return nil, err
} }

@ -25,14 +25,14 @@ import (
"sort" "sort"
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/swarm/api" "github.com/ethereum/go-ethereum/swarm/api"
swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http" swarmhttp "github.com/ethereum/go-ethereum/swarm/api/http"
"github.com/ethereum/go-ethereum/swarm/multihash" "github.com/ethereum/go-ethereum/swarm/multihash"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/swarm/testutil" "github.com/ethereum/go-ethereum/swarm/testutil"
) )
@ -361,12 +361,12 @@ func TestClientMultipartUpload(t *testing.T) {
} }
} }
func newTestSigner() (*feeds.GenericSigner, error) { func newTestSigner() (*feed.GenericSigner, error) {
privKey, err := crypto.HexToECDSA("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef") privKey, err := crypto.HexToECDSA("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")
if err != nil { if err != nil {
return nil, err return nil, err
} }
return feeds.NewGenericSigner(privKey), nil return feed.NewGenericSigner(privKey), nil
} }
// test the transparent resolving of multihash feed updates with bzz:// scheme // test the transparent resolving of multihash feed updates with bzz:// scheme
@ -394,9 +394,9 @@ func TestClientCreateFeedMultihash(t *testing.T) {
mh := multihash.ToMultihash(s) mh := multihash.ToMultihash(s)
// our feed topic // our feed topic
topic, _ := feeds.NewTopic("foo.eth", nil) topic, _ := feed.NewTopic("foo.eth", nil)
createRequest := feeds.NewFirstRequest(topic) createRequest := feed.NewFirstRequest(topic)
createRequest.SetData(mh) createRequest.SetData(mh)
if err := createRequest.Sign(signer); err != nil { if err := createRequest.Sign(signer); err != nil {
@ -448,8 +448,8 @@ func TestClientCreateUpdateFeed(t *testing.T) {
databytes := []byte("En un lugar de La Mancha, de cuyo nombre no quiero acordarme...") databytes := []byte("En un lugar de La Mancha, de cuyo nombre no quiero acordarme...")
// our feed topic name // our feed topic name
topic, _ := feeds.NewTopic("El Quijote", nil) topic, _ := feed.NewTopic("El Quijote", nil)
createRequest := feeds.NewFirstRequest(topic) createRequest := feed.NewFirstRequest(topic)
createRequest.SetData(databytes) createRequest.SetData(databytes)
if err := createRequest.Sign(signer); err != nil { if err := createRequest.Sign(signer); err != nil {
@ -508,12 +508,12 @@ func TestClientCreateUpdateFeed(t *testing.T) {
// now try retrieving feed updates without a manifest // now try retrieving feed updates without a manifest
fd := &feeds.Feed{ fd := &feed.Feed{
Topic: topic, Topic: topic,
User: signer.Address(), User: signer.Address(),
} }
lookupParams := feeds.NewQueryLatest(fd, lookup.NoClue) lookupParams := feed.NewQueryLatest(fd, lookup.NoClue)
reader, err = client.QueryFeed(lookupParams, "") reader, err = client.QueryFeed(lookupParams, "")
if err != nil { if err != nil {
t.Fatalf("Error retrieving feed updates: %s", err) t.Fatalf("Error retrieving feed updates: %s", err)

@ -40,7 +40,7 @@ import (
"github.com/ethereum/go-ethereum/swarm/api" "github.com/ethereum/go-ethereum/swarm/api"
"github.com/ethereum/go-ethereum/swarm/log" "github.com/ethereum/go-ethereum/swarm/log"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/rs/cors" "github.com/rs/cors"
) )
@ -458,7 +458,7 @@ func (s *Server) HandleDelete(w http.ResponseWriter, r *http.Request) {
} }
// Handles feed manifest creation and feed updates // Handles feed manifest creation and feed updates
// The POST request admits a JSON structure as defined in the feeds package: `feeds.updateRequestJSON` // The POST request admits a JSON structure as defined in the feeds package: `feed.updateRequestJSON`
// The requests can be to a) create a feed manifest, b) update a feed or c) both a+b: create a feed manifest and publish a first update // The requests can be to a) create a feed manifest, b) update a feed or c) both a+b: create a feed manifest and publish a first update
func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request) { func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request) {
ruid := GetRUID(r.Context()) ruid := GetRUID(r.Context())
@ -466,14 +466,14 @@ func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request) {
log.Debug("handle.post.feed", "ruid", ruid) log.Debug("handle.post.feed", "ruid", ruid)
var err error var err error
// Creation and update must send feeds.updateRequestJSON JSON structure // Creation and update must send feed.updateRequestJSON JSON structure
body, err := ioutil.ReadAll(r.Body) body, err := ioutil.ReadAll(r.Body)
if err != nil { if err != nil {
RespondError(w, r, err.Error(), http.StatusInternalServerError) RespondError(w, r, err.Error(), http.StatusInternalServerError)
return return
} }
feed, err := s.api.ResolveFeed(r.Context(), uri, r.URL.Query()) fd, err := s.api.ResolveFeed(r.Context(), uri, r.URL.Query())
if err != nil { // couldn't parse query string or retrieve manifest if err != nil { // couldn't parse query string or retrieve manifest
getFail.Inc(1) getFail.Inc(1)
httpStatus := http.StatusBadRequest httpStatus := http.StatusBadRequest
@ -484,8 +484,8 @@ func (s *Server) HandlePostFeed(w http.ResponseWriter, r *http.Request) {
return return
} }
var updateRequest feeds.Request var updateRequest feed.Request
updateRequest.Feed = *feed updateRequest.Feed = *fd
query := r.URL.Query() query := r.URL.Query()
if err := updateRequest.FromValues(query, body); err != nil { // decodes request from query parameters if err := updateRequest.FromValues(query, body); err != nil { // decodes request from query parameters
@ -552,7 +552,7 @@ func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request) {
log.Debug("handle.get.feed", "ruid", ruid) log.Debug("handle.get.feed", "ruid", ruid)
var err error var err error
feed, err := s.api.ResolveFeed(r.Context(), uri, r.URL.Query()) fd, err := s.api.ResolveFeed(r.Context(), uri, r.URL.Query())
if err != nil { // couldn't parse query string or retrieve manifest if err != nil { // couldn't parse query string or retrieve manifest
getFail.Inc(1) getFail.Inc(1)
httpStatus := http.StatusBadRequest httpStatus := http.StatusBadRequest
@ -565,10 +565,10 @@ func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request) {
// determine if the query specifies period and version or it is a metadata query // determine if the query specifies period and version or it is a metadata query
if r.URL.Query().Get("meta") == "1" { if r.URL.Query().Get("meta") == "1" {
unsignedUpdateRequest, err := s.api.FeedsNewRequest(r.Context(), feed) unsignedUpdateRequest, err := s.api.FeedsNewRequest(r.Context(), fd)
if err != nil { if err != nil {
getFail.Inc(1) getFail.Inc(1)
RespondError(w, r, fmt.Sprintf("cannot retrieve feed metadata for feed=%s: %s", feed.Hex(), err), http.StatusNotFound) RespondError(w, r, fmt.Sprintf("cannot retrieve feed metadata for feed=%s: %s", fd.Hex(), err), http.StatusNotFound)
return return
} }
rawResponse, err := unsignedUpdateRequest.MarshalJSON() rawResponse, err := unsignedUpdateRequest.MarshalJSON()
@ -582,7 +582,7 @@ func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request) {
return return
} }
lookupParams := &feeds.Query{Feed: *feed} lookupParams := &feed.Query{Feed: *fd}
if err = lookupParams.FromValues(r.URL.Query()); err != nil { // parse period, version if err = lookupParams.FromValues(r.URL.Query()); err != nil { // parse period, version
RespondError(w, r, fmt.Sprintf("invalid feed update request:%s", err), http.StatusBadRequest) RespondError(w, r, fmt.Sprintf("invalid feed update request:%s", err), http.StatusBadRequest)
return return
@ -598,7 +598,7 @@ func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request) {
} }
// All ok, serve the retrieved update // All ok, serve the retrieved update
log.Debug("Found update", "feed", feed.Hex(), "ruid", ruid) log.Debug("Found update", "feed", fd.Hex(), "ruid", ruid)
w.Header().Set("Content-Type", api.MimeOctetStream) w.Header().Set("Content-Type", api.MimeOctetStream)
http.ServeContent(w, r, "", time.Now(), bytes.NewReader(data)) http.ServeContent(w, r, "", time.Now(), bytes.NewReader(data))
} }
@ -606,7 +606,7 @@ func (s *Server) HandleGetFeed(w http.ResponseWriter, r *http.Request) {
func (s *Server) translateFeedError(w http.ResponseWriter, r *http.Request, supErr string, err error) (int, error) { func (s *Server) translateFeedError(w http.ResponseWriter, r *http.Request, supErr string, err error) (int, error) {
code := 0 code := 0
defaultErr := fmt.Errorf("%s: %v", supErr, err) defaultErr := fmt.Errorf("%s: %v", supErr, err)
rsrcErr, ok := err.(*feeds.Error) rsrcErr, ok := err.(*feed.Error)
if !ok && rsrcErr != nil { if !ok && rsrcErr != nil {
code = rsrcErr.Code() code = rsrcErr.Code()
} }

@ -38,7 +38,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
@ -48,7 +48,7 @@ import (
swarm "github.com/ethereum/go-ethereum/swarm/api/client" swarm "github.com/ethereum/go-ethereum/swarm/api/client"
"github.com/ethereum/go-ethereum/swarm/multihash" "github.com/ethereum/go-ethereum/swarm/multihash"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/swarm/testutil" "github.com/ethereum/go-ethereum/swarm/testutil"
) )
@ -62,12 +62,12 @@ func serverFunc(api *api.API) testutil.TestServer {
return NewServer(api, "") return NewServer(api, "")
} }
func newTestSigner() (*feeds.GenericSigner, error) { func newTestSigner() (*feed.GenericSigner, error) {
privKey, err := crypto.HexToECDSA("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef") privKey, err := crypto.HexToECDSA("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")
if err != nil { if err != nil {
return nil, err return nil, err
} }
return feeds.NewGenericSigner(privKey), nil return feed.NewGenericSigner(privKey), nil
} }
// test the transparent resolving of multihash-containing feed updates with bzz:// scheme // test the transparent resolving of multihash-containing feed updates with bzz:// scheme
@ -103,8 +103,8 @@ func TestBzzFeedMultihash(t *testing.T) {
log.Info("added data", "manifest", string(b), "data", common.ToHex(mh)) log.Info("added data", "manifest", string(b), "data", common.ToHex(mh))
topic, _ := feeds.NewTopic("foo.eth", nil) topic, _ := feed.NewTopic("foo.eth", nil)
updateRequest := feeds.NewFirstRequest(topic) updateRequest := feed.NewFirstRequest(topic)
updateRequest.SetData(mh) updateRequest.SetData(mh)
@ -182,8 +182,8 @@ func TestBzzFeed(t *testing.T) {
//data for update 2 //data for update 2
update2Data := []byte("foo") update2Data := []byte("foo")
topic, _ := feeds.NewTopic("foo.eth", nil) topic, _ := feed.NewTopic("foo.eth", nil)
updateRequest := feeds.NewFirstRequest(topic) updateRequest := feed.NewFirstRequest(topic)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -319,7 +319,7 @@ func TestBzzFeed(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
updateRequest = &feeds.Request{} updateRequest = &feed.Request{}
if err = updateRequest.UnmarshalJSON(b); err != nil { if err = updateRequest.UnmarshalJSON(b); err != nil {
t.Fatalf("Error decoding feed metadata: %s", err) t.Fatalf("Error decoding feed metadata: %s", err)
} }
@ -365,7 +365,7 @@ func TestBzzFeed(t *testing.T) {
// test manifest-less queries // test manifest-less queries
log.Info("get first update in update1Timestamp via direct query") log.Info("get first update in update1Timestamp via direct query")
query := feeds.NewQuery(&updateRequest.Feed, update1Timestamp, lookup.NoClue) query := feed.NewQuery(&updateRequest.Feed, update1Timestamp, lookup.NoClue)
urlq, err := url.Parse(fmt.Sprintf("%s/bzz-feed:/", srv.URL)) urlq, err := url.Parse(fmt.Sprintf("%s/bzz-feed:/", srv.URL))
if err != nil { if err != nil {

@ -27,7 +27,7 @@ import (
"strings" "strings"
"time" "time"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/swarm/log" "github.com/ethereum/go-ethereum/swarm/log"
@ -56,7 +56,7 @@ type ManifestEntry struct {
ModTime time.Time `json:"mod_time,omitempty"` ModTime time.Time `json:"mod_time,omitempty"`
Status int `json:"status,omitempty"` Status int `json:"status,omitempty"`
Access *AccessEntry `json:"access,omitempty"` Access *AccessEntry `json:"access,omitempty"`
Feed *feeds.Feed `json:"feed,omitempty"` Feed *feed.Feed `json:"feed,omitempty"`
} }
// ManifestList represents the result of listing files in a manifest // ManifestList represents the result of listing files in a manifest
@ -82,7 +82,7 @@ func (a *API) NewManifest(ctx context.Context, toEncrypt bool) (storage.Address,
// Manifest hack for supporting Swarm feeds from the bzz: scheme // Manifest hack for supporting Swarm feeds from the bzz: scheme
// see swarm/api/api.go:API.Get() for more information // see swarm/api/api.go:API.Get() for more information
func (a *API) NewFeedManifest(ctx context.Context, feed *feeds.Feed) (storage.Address, error) { func (a *API) NewFeedManifest(ctx context.Context, feed *feed.Feed) (storage.Address, error) {
var manifest Manifest var manifest Manifest
entry := ManifestEntry{ entry := ManifestEntry{
Feed: feed, Feed: feed,

@ -317,7 +317,7 @@ func (c *Controller) handleStartMsg(msg *Msg, keyid string) (err error) {
return err return err
} }
// TODO this is set to zero-length byte pending decision on protocol for initial message, whether it should include message or not, and how to trigger the initial message so that current state of Swarm Feed is sent upon subscription // TODO this is set to zero-length byte pending decision on protocol for initial message, whether it should include message or not, and how to trigger the initial message so that current state of Swarm feed is sent upon subscription
notify := []byte{} notify := []byte{}
replyMsg := NewMsg(MsgCodeNotifyWithKey, msg.namestring, make([]byte, len(notify)+symKeyLength)) replyMsg := NewMsg(MsgCodeNotifyWithKey, msg.namestring, make([]byte, len(notify)+symKeyLength))
copy(replyMsg.Payload, notify) copy(replyMsg.Payload, notify)

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import "github.com/ethereum/go-ethereum/common/hexutil" import "github.com/ethereum/go-ethereum/common/hexutil"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"encoding/json" "encoding/json"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"bytes" "bytes"

@ -40,4 +40,4 @@ Request: Feed Update with signature
Epoch: time slot where the update is stored Epoch: time slot where the update is stored
*/ */
package feeds package feed

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"fmt" "fmt"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"hash" "hash"

@ -13,7 +13,7 @@
// //
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"testing" "testing"

@ -16,7 +16,7 @@
// Handler is the API for feeds // Handler is the API for feeds
// It enables creating, updating, syncing and retrieving feed updates and their data // It enables creating, updating, syncing and retrieving feed updates and their data
package feeds package feed
import ( import (
"bytes" "bytes"
@ -25,7 +25,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
"github.com/ethereum/go-ethereum/swarm/log" "github.com/ethereum/go-ethereum/swarm/log"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"bytes" "bytes"
@ -31,7 +31,7 @@ import (
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/swarm/chunk" "github.com/ethereum/go-ethereum/swarm/chunk"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
var ( var (

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"fmt" "fmt"
@ -22,7 +22,7 @@ import (
"strconv" "strconv"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
) )

@ -1,9 +1,9 @@
package feeds package feed
import ( import (
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
func getTestID() *ID { func getTestID() *ID {

@ -3,7 +3,7 @@ package lookup_test
import ( import (
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
func TestMarshallers(t *testing.T) { func TestMarshallers(t *testing.T) {

@ -22,7 +22,7 @@ import (
"testing" "testing"
"github.com/ethereum/go-ethereum/swarm/log" "github.com/ethereum/go-ethereum/swarm/log"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
type Data struct { type Data struct {

@ -14,14 +14,14 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"fmt" "fmt"
"strconv" "strconv"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
// Query is used to specify constraints when performing an update lookup // Query is used to specify constraints when performing an update lookup

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"testing" "testing"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"bytes" "bytes"
@ -24,7 +24,7 @@ import (
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
// Request represents a request to sign or signed feed update message // Request represents a request to sign or signed feed update message

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"bytes" "bytes"
@ -26,7 +26,7 @@ import (
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds/lookup" "github.com/ethereum/go-ethereum/swarm/storage/feed/lookup"
) )
func areEqualJSON(s1, s2 string) (bool, error) { func areEqualJSON(s1, s2 string) (bool, error) {

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"crypto/ecdsa" "crypto/ecdsa"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"context" "context"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"encoding/binary" "encoding/binary"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"bytes" "bytes"

@ -1,4 +1,4 @@
package feeds package feed
import ( import (
"testing" "testing"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"fmt" "fmt"

@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License // You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
package feeds package feed
import ( import (
"testing" "testing"

@ -49,8 +49,8 @@ import (
"github.com/ethereum/go-ethereum/swarm/pss" "github.com/ethereum/go-ethereum/swarm/pss"
"github.com/ethereum/go-ethereum/swarm/state" "github.com/ethereum/go-ethereum/swarm/state"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feed"
"github.com/ethereum/go-ethereum/swarm/storage/mock" "github.com/ethereum/go-ethereum/swarm/storage/mock"
"github.com/ethereum/go-ethereum/swarm/storage/feeds"
"github.com/ethereum/go-ethereum/swarm/tracing" "github.com/ethereum/go-ethereum/swarm/tracing"
) )
@ -186,10 +186,10 @@ func NewSwarm(config *api.Config, mockStore *mock.NodeStore) (self *Swarm, err e
// Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage // Swarm Hash Merklised Chunking for Arbitrary-length Document/File storage
self.fileStore = storage.NewFileStore(self.netStore, self.config.FileStoreParams) self.fileStore = storage.NewFileStore(self.netStore, self.config.FileStoreParams)
var feedsHandler *feeds.Handler var feedsHandler *feed.Handler
fhParams := &feeds.HandlerParams{} fhParams := &feed.HandlerParams{}
feedsHandler = feeds.NewHandler(fhParams) feedsHandler = feed.NewHandler(fhParams)
feedsHandler.SetStore(self.netStore) feedsHandler.SetStore(self.netStore)
lstore.Validators = []storage.ChunkValidator{ lstore.Validators = []storage.ChunkValidator{

@ -25,7 +25,7 @@ import (
"github.com/ethereum/go-ethereum/swarm/api" "github.com/ethereum/go-ethereum/swarm/api"
"github.com/ethereum/go-ethereum/swarm/storage" "github.com/ethereum/go-ethereum/swarm/storage"
"github.com/ethereum/go-ethereum/swarm/storage/feeds" "github.com/ethereum/go-ethereum/swarm/storage/feed"
) )
type TestServer interface { type TestServer interface {
@ -54,8 +54,8 @@ func NewTestSwarmServer(t *testing.T, serverFunc func(*api.API) TestServer, reso
t.Fatal(err) t.Fatal(err)
} }
rhparams := &feeds.HandlerParams{} rhparams := &feed.HandlerParams{}
rh, err := feeds.NewTestHandler(feedsDir, rhparams) rh, err := feed.NewTestHandler(feedsDir, rhparams)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -75,7 +75,7 @@ func NewTestSwarmServer(t *testing.T, serverFunc func(*api.API) TestServer, reso
}, },
CurrentTime: 42, CurrentTime: 42,
} }
feeds.TimestampProvider = tss feed.TimestampProvider = tss
return tss return tss
} }
@ -92,6 +92,6 @@ func (t *TestSwarmServer) Close() {
t.cleanup() t.cleanup()
} }
func (t *TestSwarmServer) Now() feeds.Timestamp { func (t *TestSwarmServer) Now() feed.Timestamp {
return feeds.Timestamp{Time: t.CurrentTime} return feed.Timestamp{Time: t.CurrentTime}
} }