English | 中文
IPFS-eX is a implementation that uses DSP protocol to upgrade IPFS protocol network Storage protocol, the goal is to bring more key protocol capabilities such as distribute data actively, file encryption, and permission control to the IPFS network, and ultimately establish a more complete distributed storage alternative network.
DSP(Distributed Storage Protocol) protocol is a next generation Internet protocol paradigm based on multi-dimensional data file encryption, distribution, storage, sharing, etc. The goal of DSP is to become the core infrastructure of Web3.0. What we need is a new set of free and open network protocols-based on this set of protocols, people hope that they can achieve true freedom of data and freedom of interconnection. At the same time, it is necessary to form a user data file sharing library (database) under a free network. This database is neutral and jointly owned by the users themselves.
As an open source protocol that began to explore distributed storage protocols earlier, IPFS has done a lot of work in the development of distributed storage protocols, and has also completed phased progress, and has won the favor of a large number of developers, with a large number of storage nodes distributed in the network, it has an ideal distributed storage environment foundation.
However, we have higher expectations for the future Web3.0 storage network world. Various types of data files should be able to be actively distributed and freely shared according to the actual business needs. Any level of client should be able to become a distribution node, any member should have the right to fully participate in the distribution, sharing, and storage of files on the network. But at the same time, the privacy and data security of all participants should be fully protected. All data in the network will be the most valuable asset.
IPFS-eX is a open source project that use DSP to expand IPFS protocol, using DSP protocol to ensure data is distributed efficiently, highly concurrently and safely on the network. At the same time, it supports end-to-end file data sharing, and through the support of encryption technology, file sharing and stable storage can be safely performed in a decentralized storage network. Through file fragment encryption and multi-point storage, the availability and stability of network data transmission can be greatly improved. With the support of applied cryptography, control of the file's own access rights is also achieved.
go-ipfs-ex
is the golang implementation of IPFS-eX
.
We write a set of documents, posts, and tutorials to explain what DSP is, what IPFS-eX is, how go-ipfs-ex works, and how it can help your existing and new projects.
- active distribution
- privacy protection
- access control
coming soon...
Golang 1.13 or later.
go-ipfs-ex
use Go modules manage dependency
go-ipfs-ex
can run on most Linux, macOS, and Windows systems. We recommend running it on a machine with at least 2 GB of RAM and 2 CPU cores (go-ipfs is highly parallel).
If your system is resource-constrained, we recommend:
- manually rebuild
go-ipfs-ex
make build GOTAGS=OpenSSL
- Initializing your daemon with go-ipfs-ex init --profile=lowpower
go-ipfs-ex
need Golang 1.13 or later,If you don't have it: Download Go 1.13+。
You'll need to add Go's bin directories to your $PATH
environment variable e.g., by adding these lines to your /etc/profile
(for a system-wide installation) or $HOME/.profile
:
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$GOPATH/bin
(If you run into trouble, see the Go install instructions).
$ git clone https://github.com/IPFS-eX/go-ipfs-ex.git
$ cd go-ipfs-ex
$ make install
continue use ipfs command
ipfs - Global p2p merkle-dag filesystem.
ipfs [<flags>] <command> [<arg>] ...
SUBCOMMANDS
BASIC COMMANDS
init Initialize ipfs local configuration
add <path> Add a file to ipfs
cat <ref> Show ipfs object data
get <ref> Download ipfs objects
ls <ref> List links from an object
refs <ref> List hashes of links from an object
DATA STRUCTURE COMMANDS
block Interact with raw blocks in the datastore
object Interact with raw dag nodes
files Interact with objects as if they were a unix filesystem
ADVANCED COMMANDS
daemon Start a long-running daemon process
mount Mount an ipfs read-only mount point
resolve Resolve any type of name
name Publish or resolve IPNS names
dns Resolve DNS links
pin Pin objects to local storage
repo Manipulate an IPFS repository
NETWORK COMMANDS
id Show info about ipfs peers
bootstrap Add or remove bootstrap peers
swarm Manage connections to the p2p network
dht Query the DHT for values or peers
ping Measure the latency of a connection
diag Print diagnostics
TOOL COMMANDS
config Manage configuration
version Show ipfs version information
update Download and apply go-ipfs updates
commands List all available commands
Use 'ipfs <command> --help' to learn more about each command.
ipfs uses a repository in the local file system. By default, the repo is located at
~/.ipfs. To change the repo location, set the $IPFS_PATH environment variable:
export IPFS_PATH=/path/to/ipfsrepo
coming soon...
`go test ./...`
Thank you for considering contributing source code to IPFS-eX. We welcome any individuals and organizations on the Internet to participate in this open source project.
We have the following code contribution rules that need to be followed by everyone:
- Code needs to be followed Golang formatting guidance document(e.g.use
gofmt
); - Documents need to be followed Golang commentary suggestion;
- The commit information needs to reflect the modified source package name;
- You can also follow the development Manual for more detailed development information.
go-ipfs-ex
is available under MIT/Apache-2.0。