Content Service

🎨 IPFS Alternative HTTP Interface
Alternatives To Content Service
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Openbazaar Go933
2 years ago147November 20, 2020301mitGo
OpenBazaar 2.0 Server Daemon in Go
Slate511
5 months ago36mitJavaScript
WIP - We're building the place you go to discover, share, and sell files on the web.
Summa17012 days ago196March 23, 20235mitRust
Full-text IPFS-friendly and WASM-compatible Search in Rust
Feathers Giveth85
4 months ago41mitJavaScript
Featherjs server for caching giveth data.
Astralboot80
5 years agoOctober 13, 20152Go
a low level boot server that deploys servers from file system or ipfs
Eth Notifier Ui21
6 years agomitJavaScript
Web UI for ETH Notifier
Ipfs Video Gateway19
2 years agogpl-3.0Python
Docker image to host IPFS HTTP gateway with support for pin listing and easily adding content
Osm Ipfs Proxy13
4 years agogpl-3.0HTML
Map tile system IPFS based
Php Ipfs12
7 years ago4July 02, 2016mitPHP
A PHP wrapper for the IPFS API server
Dns To Ens8
6 years agootherJavaScript
Resolve *.eth domains in your browser with our dns server.
Alternatives To Content Service
Select To Compare


Alternative Project Comparisons
Readme

IMPORTANT

This repository is outdated and has not been used is a while. If you want to see how Decentraland's distributed content network works, check out this repository.

Content Service

The content service is used to store and distribute content in decentraland that's manipulated by land owners

Our vision of a decentralized platform can't rely on a single centralized server storing an only copy of the virtual world's content. The Content Service allows anyone to host their own instance of the server that stores the world data. Today, the Decentraland client fetches content from a single instance of the content server that's maintained by us. In the future, we want the client to fetch data from multiple replicas of the content, this will guarantee its availability and fast download speeds, independently of the location.

The content hosted in each server includes all the files that make up Decentraland scenes, including .ts scripts, 3D models, texture images, audio files and videos. Currently, each server stores the entirety of the data of all of Genesis city. In future releases of the content service, you'll be able to host a server that only holds the data for specific parcels, to ensure that your scene is always available without depending on any third party.

Each file stored in the content server is cryptographically signed by the parcel owner's key, and the contents of the file are processed to generate a unique hash code, using the same algorithm that IPFS uses to generate its CIDs.

The content server has endpoints that you can send requests to, to fetch data and to validate the authenticity of the signatures on each file.

Technical overview

Note: As the original idea was distributing the content through ipfs, all content is still identified by the corresponding hash or CID (though support for ipfs is on hold).

Content is organized by scene and queried by parcel. When querying content, the client must ask for all the scenes that at least partially overlap with a given set of parcels, and then all full scenes need to be downloaded.

For uploading, content must be signed by the owner or update operator of the scene, and CIDs must be calculated for every file in the scene.

The upload process may corrupt scenes, so the client is responsible for checking if a given scene is still valid by checking that all parcels that are used by the scene still belong to the scene. This consideration makes working with this API a little bit tricky.

Requirements

The following dependencies need to be installed to run a content service server.

Setup git hooks Environment for development

$ make init

Configuration

To configure the service, edit the config.yml file, in the base directory.

Note: If you use s3Storage you need to set AWS environment variables: AWS_REGION, AWS_ACCESS_KEY, and AWS_SECRET_KEY.

Running

First start Redis:

$ make ops

Then build the project:

$ make build

You can instead build and run with a single command:

$ make run

make run starts an instance of the content service server.

Alternatively to docker, you can build and run the server with

$ go build .
$ ./content-service

API Documentation

Documentation

Replication

To replicate a content-service server run:

$ make replicate

You will recieve a prompt to input the map coordinates for the NW and SE parcels.

This program connects to the server url provided in config.yml. It stores the data files in the dir specified by localstorage and populates the Redis instance defined in the redis field.

Copyright info

This repository is protected with a standard Apache 2 license. See the terms and conditions in the LICENSE file.

Popular Ipfs Projects
Popular Server Projects
Popular Networking Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Server
Redis
Scene
Ipfs
Parcel