DataHop Service
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
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