|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Openbazaar Go||933||2 years ago||147||November 20, 2020||301||mit||Go|
|OpenBazaar 2.0 Server Daemon in Go|
|WIP - We're building the place you go to discover, share, and sell files on the web.|
|Summa||170||1||2 days ago||196||March 23, 2023||5||mit||Rust|
|Full-text IPFS-friendly and WASM-compatible Search in Rust|
|Featherjs server for caching giveth data.|
|Astralboot||80||5 years ago||October 13, 2015||2||Go|
|a low level boot server that deploys servers from file system or ipfs|
|Web UI for ETH Notifier|
|Ipfs Video Gateway||19||2 years ago||gpl-3.0||Python|
|Docker image to host IPFS HTTP gateway with support for pin listing and easily adding content|
|Osm Ipfs Proxy||13||4 years ago||gpl-3.0||HTML|
|Map tile system IPFS based|
|Php Ipfs||12||7 years ago||4||July 02, 2016||mit||PHP|
|A PHP wrapper for the IPFS API server|
|Resolve *.eth domains in your browser with our dns server.|
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.
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.
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.
The following dependencies need to be installed to run a content service server.
$ make init
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:
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
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
This repository is protected with a standard Apache 2 license. See the terms and conditions in the LICENSE file.