Skip to content

DataHop Service

Go Reference Go Report Card Actions Status codecov

The outcome of DataHop is local content sharing in mobile devices without requiring any network infrastructure. IPFS platform provides required networking features that will substitute typical client-server architecture for end-user centric networking. These features are:

  • Content addressing: IPFS provides a content identifier, or CID used to point to material in IPFS. This can be used to identify and fetch content without requiring defining a specific content naming for a specific application.
  • Content storage: IPFS provides a local storage cache that stores any file provided or fetched by the user. This is used to enable content sharing from any user that previously got the same content without requiring a centralised model
  • Peer-to-peer connectivity: An important part of the IPFS project is the libp2p subproject. Libp2p provides all required network libraries to start connections with other users, discovery features and write/read data from other peers.
  • Infrastructure integration: This feature allows users to discover and fetch content from remote peers when infrastructure is available (Internet connectivity) to later make it available to local users.

To this end DataHop based it smartphone service on IPFS, developing an embeddable and lightweight IPFS peer that can run on Android devices. This fork started from ipfs-lite. It offers all the features of main ipfs-lite. For certain requirements of DataHop it adds some more features of full IPFS, such as config, repo, leveldb etc.

Examples

cli client

 go run ./examples/litepeer/litepeer.go

mobile client

  go run ./examples/mobilepeer/mobilepeer.go

Objectives

  • Create cache repo as IPFS
  • Have persistent config information (Id, keys, ports, bootstraps etc)
  • Use leveldb as datastore to set up peer
  • Generate gomobile binding for android
  • Adding content
  • Content replication
  • Remove content
  • Remove respective replication info for removed content
  • Mobile service using bootstrap peer
  • Cli for bootstrap peer

Documentation

Go pkg docs

License

Copyright 2021 DataHop

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Acknowledgment

This software is part of the NGI Pointer project "Incentivised Content Dissemination at the Network Edge" that has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871528

ngi logo eu logo