214 lines
8.1 KiB
Markdown
214 lines
8.1 KiB
Markdown
# ZeroNet [](https://travis-ci.org/HelloZeroNet/ZeroNet) [](https://zeronet.readthedocs.org/en/latest/faq/) [](https://zeronet.readthedocs.org/en/latest/help_zeronet/donate/)
|
|
|
|
[简体中文](./README-zh-cn.md)
|
|
|
|
Decentralized websites using Bitcoin crypto and the BitTorrent network - https://zeronet.io
|
|
|
|
|
|
## Why?
|
|
|
|
* We believe in open, free, and uncensored network and communication.
|
|
* No single point of failure: Site remains online so long as at least 1 peer is
|
|
serving it.
|
|
* No hosting costs: Sites are served by visitors.
|
|
* Impossible to shut down: It's nowhere because it's everywhere.
|
|
* Fast and works offline: You can access the site even if Internet is
|
|
unavailable.
|
|
|
|
|
|
## Features
|
|
* Real-time updated sites
|
|
* Namecoin .bit domains support
|
|
* Easy to setup: unpack & run
|
|
* Clone websites in one click
|
|
* Password-less [BIP32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)
|
|
based authorization: Your account is protected by the same cryptography as your Bitcoin wallet
|
|
* Built-in SQL server with P2P data synchronization: Allows easier site development and faster page load times
|
|
* Anonymity: Full Tor network support with .onion hidden services instead of IPv4 addresses
|
|
* TLS encrypted connections
|
|
* Automatic uPnP port opening
|
|
* Plugin for multiuser (openproxy) support
|
|
* Works with any browser/OS
|
|
|
|
|
|
## How does it work?
|
|
|
|
* After starting `zeronet.py` you will be able to visit zeronet sites using
|
|
`http://127.0.0.1:43110/{zeronet_address}` (eg.
|
|
`http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D`).
|
|
* When you visit a new zeronet site, it tries to find peers using the BitTorrent
|
|
network so it can download the site files (html, css, js...) from them.
|
|
* Each visited site is also served by you.
|
|
* Every site contains a `content.json` file which holds all other files in a sha512 hash
|
|
and a signature generated using the site's private key.
|
|
* If the site owner (who has the private key for the site address) modifies the
|
|
site, then he/she signs the new `content.json` and publishes it to the peers.
|
|
Afterwards, the peers verify the `content.json` integrity (using the
|
|
signature), they download the modified files and publish the new content to
|
|
other peers.
|
|
|
|
#### [Slideshow about ZeroNet cryptography, site updates, multi-user sites »](https://docs.google.com/presentation/d/1_2qK1IuOKJ51pgBvllZ9Yu7Au2l551t3XBgyTSvilew/pub?start=false&loop=false&delayms=3000)
|
|
#### [Frequently asked questions »](https://zeronet.readthedocs.org/en/latest/faq/)
|
|
|
|
#### [ZeroNet Developer Documentation »](https://zeronet.readthedocs.org/en/latest/site_development/getting_started/)
|
|
|
|
|
|
## Screenshots
|
|
|
|

|
|

|
|
|
|
#### [More screenshots in ZeroNet docs »](https://zeronet.readthedocs.org/en/latest/using_zeronet/sample_sites/)
|
|
|
|
|
|
## How to join
|
|
|
|
* Download ZeroBundle package:
|
|
* [Microsoft Windows](https://github.com/HelloZeroNet/ZeroNet-win/archive/dist/ZeroNet-win.zip)
|
|
* [Apple macOS](https://github.com/HelloZeroNet/ZeroNet-mac/archive/dist/ZeroNet-mac.zip)
|
|
* [Linux 64-bit](https://github.com/HelloZeroNet/ZeroBundle/raw/master/dist/ZeroBundle-linux64.tar.gz)
|
|
* [Linux 32-bit](https://github.com/HelloZeroNet/ZeroBundle/raw/master/dist/ZeroBundle-linux32.tar.gz)
|
|
* Unpack anywhere
|
|
* Run `ZeroNet.exe` (win), `ZeroNet(.app)` (osx), `ZeroNet.sh` (linux)
|
|
|
|
### Linux terminal
|
|
|
|
* `wget https://github.com/HelloZeroNet/ZeroBundle/raw/master/dist/ZeroBundle-linux64.tar.gz`
|
|
* `tar xvpfz ZeroBundle-linux64.tar.gz`
|
|
* `cd ZeroBundle`
|
|
* Start with `./ZeroNet.sh`
|
|
|
|
It downloads the latest version of ZeroNet then starts it automatically.
|
|
|
|
#### Manual install for Debian Linux
|
|
|
|
* `sudo apt-get update`
|
|
* `sudo apt-get install msgpack-python python-gevent`
|
|
* `wget https://github.com/HelloZeroNet/ZeroNet/archive/master.tar.gz`
|
|
* `tar xvpfz master.tar.gz`
|
|
* `cd ZeroNet-master`
|
|
* Start with `python2 zeronet.py`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
### [Arch Linux](https://www.archlinux.org)
|
|
|
|
* `git clone https://aur.archlinux.org/zeronet.git`
|
|
* `cd zeronet-git`
|
|
* `makepkg -srci`
|
|
* `systemctl start zeronet`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
See [ArchWiki](https://wiki.archlinux.org)'s [ZeroNet
|
|
article](https://wiki.archlinux.org/index.php/ZeroNet) for further assistance.
|
|
|
|
### [Gentoo Linux](https://www.gentoo.org)
|
|
|
|
* [`layman -a raiagent`](https://github.com/leycec/raiagent)
|
|
* `echo '>=net-vpn/zeronet-0.5.4' >> /etc/portage/package.accept_keywords`
|
|
* *(Optional)* Enable Tor support: `echo 'net-vpn/zeronet tor' >>
|
|
/etc/portage/package.use`
|
|
* `emerge zeronet`
|
|
* `rc-service zeronet start`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
See `/usr/share/doc/zeronet-*/README.gentoo.bz2` for further assistance.
|
|
|
|
### [FreeBSD](https://www.freebsd.org/)
|
|
|
|
* `pkg install zeronet` or `cd /usr/ports/security/zeronet/ && make install clean`
|
|
* `sysrc zeronet_enable="YES"`
|
|
* `service zeronet start`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
### [Vagrant](https://www.vagrantup.com/)
|
|
|
|
* `vagrant up`
|
|
* Access VM with `vagrant ssh`
|
|
* `cd /vagrant`
|
|
* Run `python2 zeronet.py --ui_ip 0.0.0.0`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
### [Docker](https://www.docker.com/)
|
|
* `docker run -d -v <local_data_folder>:/root/data -p 15441:15441 -p 127.0.0.1:43110:43110 nofish/zeronet`
|
|
* This Docker image includes the Tor proxy, which is disabled by default. Beware that some
|
|
hosting providers may not allow you running Tor in their servers. If you want to enable it,
|
|
set `ENABLE_TOR` environment variable to `true` (Default: `false`). E.g.:
|
|
|
|
`docker run -d -e "ENABLE_TOR=true" -v <local_data_folder>:/root/data -p 15441:15441 -p 127.0.0.1:43110:43110 nofish/zeronet`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
### [Virtualenv](https://virtualenv.readthedocs.org/en/latest/)
|
|
|
|
* `virtualenv env`
|
|
* `source env/bin/activate`
|
|
* `pip install msgpack-python gevent`
|
|
* `python2 zeronet.py`
|
|
* Open http://127.0.0.1:43110/ in your browser
|
|
|
|
## Current limitations
|
|
|
|
* ~~No torrent-like file splitting for big file support~~ (big file support added)
|
|
* ~~No more anonymous than Bittorrent~~ (built-in full Tor support added)
|
|
* File transactions are not compressed ~~or encrypted yet~~ (TLS encryption added)
|
|
* No private sites
|
|
|
|
|
|
## How can I create a ZeroNet site?
|
|
|
|
Shut down zeronet if you are running it already
|
|
|
|
```bash
|
|
$ zeronet.py siteCreate
|
|
...
|
|
- Site private key: 23DKQpzxhbVBrAtvLEc2uvk7DZweh4qL3fn3jpM3LgHDczMK2TtYUq
|
|
- Site address: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
|
|
...
|
|
- Site created!
|
|
$ zeronet.py
|
|
...
|
|
```
|
|
|
|
Congratulations, you're finished! Now anyone can access your site using
|
|
`http://localhost:43110/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2`
|
|
|
|
Next steps: [ZeroNet Developer Documentation](https://zeronet.readthedocs.org/en/latest/site_development/getting_started/)
|
|
|
|
|
|
## How can I modify a ZeroNet site?
|
|
|
|
* Modify files located in data/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2 directory.
|
|
After you're finished:
|
|
|
|
```bash
|
|
$ zeronet.py siteSign 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
|
|
- Signing site: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2...
|
|
Private key (input hidden):
|
|
```
|
|
|
|
* Enter the private key you got when you created the site, then:
|
|
|
|
```bash
|
|
$ zeronet.py sitePublish 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
|
|
...
|
|
Site:13DNDk..bhC2 Publishing to 3/10 peers...
|
|
Site:13DNDk..bhC2 Successfuly published to 3 peers
|
|
- Serving files....
|
|
```
|
|
|
|
* That's it! You've successfully signed and published your modifications.
|
|
|
|
|
|
## Help keep this project alive
|
|
|
|
- Bitcoin: 1QDhxQ6PraUZa21ET5fYUCPgdrwBomnFgX
|
|
- Paypal: https://zeronet.readthedocs.org/en/latest/help_zeronet/donate/
|
|
|
|
### Sponsors
|
|
|
|
* Better macOS/Safari compatibility made possible by [BrowserStack.com](https://www.browserstack.com)
|
|
|
|
#### Thank you!
|
|
|
|
* More info, help, changelog, zeronet sites: https://www.reddit.com/r/zeronet/
|
|
* Come, chat with us: [#zeronet @ FreeNode](https://kiwiirc.com/client/irc.freenode.net/zeronet) or on [gitter](https://gitter.im/HelloZeroNet/ZeroNet)
|
|
* Email: hello@zeronet.io (PGP: CB9613AE)
|