2015-01-12 00:41:38 +00:00
# ZeroNet
2015-01-12 02:18:50 +00:00
2015-02-18 14:45:08 +00:00
Decentralized websites using Bitcoin crypto and the BitTorrent network
2015-01-12 19:35:23 +00:00
2015-01-12 10:36:21 +00:00
## Why?
2015-02-18 14:45:08 +00:00
* 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
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 your internet is
unavailable.
2015-01-12 10:36:21 +00:00
2015-01-12 02:18:50 +00:00
2015-01-13 09:56:47 +00:00
## How does it work?
2015-02-18 14:45:08 +00:00
* 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/1EU1tbG9oC1A8jz2ouVwGZyQ5asrNsE4Vr` ).
* 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 becomes also served by you.
* Every site contains a `site.json` which holds all other files in a sha512 hash
and a signature generated using 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.
After the peers have verified the `content.json` integrity (using the
signature), they download the modified files and publish the new content to
other peers.
2015-01-12 02:18:50 +00:00
2015-04-07 23:19:56 +00:00
## Features
2015-04-08 01:02:04 +00:00
* Easy, zero configuration setup
2015-04-07 23:19:56 +00:00
* Password-less [BIP32 ](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki )
2015-04-08 01:02:04 +00:00
based authorization: Your account is protected by same cryptography as your bitcoin wallet
* Namecoin .bit domains support
* SQL Database support: Allows easier site development and faster page load times
* Automatic, uPnP port opening
* Plugin for multiuser (openproxy) support
* [ZeroFrame API ](http://zeronet.readthedocs.org/en/latest/site_development/zeroframe_api_reference/ ) for dynamic sites
* One click ZeroNet client updater
2015-01-12 19:35:23 +00:00
2015-01-12 10:55:37 +00:00
2015-04-07 23:19:56 +00:00
## Screenshots
![Screenshot ](http://zeronet.readthedocs.org/en/latest/img/zerohello.png )
![ZeroTalk ](http://zeronet.readthedocs.org/en/latest/img/zerotalk.png )
#### [More screenshots in ZeroNet docs »](http://zeronet.readthedocs.org/en/latest/getting_started/sample_sites/)
2015-01-12 02:18:50 +00:00
2015-01-12 19:35:23 +00:00
2015-01-12 10:36:21 +00:00
## How to join?
2015-01-21 11:58:26 +00:00
2015-02-18 14:45:08 +00:00
### Windows
2015-04-09 20:20:33 +00:00
* [Download ZeroBundle package ](https://github.com/HelloZeroNet/ZeroBundle/releases/download/0.1.0/ZeroBundle-v0.1.0.zip ) that includes Python 2.7.9 and all required library
* Unpack to any directory
* Run `zeronet.cmd`
It downloads the latest version of ZeroNet then starts it automatically.
#### Alternative method for Windows by installing Python
2015-02-18 14:45:08 +00:00
* [Install Python 2.7 ](https://www.python.org/ftp/python/2.7.9/python-2.7.9.msi )
* [Install Python ZeroMQ ](http://zeronet.io/files/windows/pyzmq-14.4.1.win32-py2.7.exe )
* [Install Python Greenlet ](http://zeronet.io/files/windows/greenlet-0.4.5.win32-py2.7.exe )
* [Install Python Gevent ](http://zeronet.io/files/windows/gevent-1.0.1.win32-py2.7.exe )
* [Install Python MsgPack ](http://zeronet.io/files/windows/msgpack-python-0.4.2.win32-py2.7.exe )
2015-04-09 20:20:33 +00:00
* [Download and extract ZeroNet ](https://codeload.github.com/HelloZeroNet/ZeroNet/zip/master ) to any directory
* Run `start.py`
2015-02-18 14:45:08 +00:00
### Linux
#### Debian
2015-03-25 11:40:12 +00:00
* `sudo apt-get update`
* `sudo apt-get install build-essential python-dev python-pip git`
* `sudo pip install pyzmq gevent msgpack-python`
* `git clone https://github.com/HelloZeroNet/ZeroNet.git`
* `cd ZeroNet`
2015-02-18 14:45:08 +00:00
* Start with `python zeronet.py`
2015-03-25 11:40:12 +00:00
* Open http://127.0.0.1:43110/ in your browser and enjoy! :)
2015-02-18 14:45:08 +00:00
2015-03-11 15:33:51 +00:00
#### Other Linux or without root access
* Check your python version using `python --version` if the returned version is not `Python 2.7.X` then try `python2` or `python2.7` command and use it from now
2015-02-18 14:45:08 +00:00
* `wget https://bootstrap.pypa.io/get-pip.py`
* `python get-pip.py --user pyzmq gevent msgpack-python`
* Start with `python zeronet.py`
2015-01-12 19:35:23 +00:00
2015-01-17 17:50:56 +00:00
## Current limitations
2015-02-18 14:45:08 +00:00
* No torrent-like, file splitting for big file support
2015-02-18 14:47:36 +00:00
* No more anonymous than Bittorrent
2015-02-18 14:45:08 +00:00
* File transactions are not compressed or encrypted yet
* No private sites
2015-04-07 23:19:56 +00:00
* ~~You must have an open port to publish new changes~~
* ~~Timeout problems on slow connections~~
2015-01-17 17:50:56 +00:00
2015-01-12 19:35:23 +00:00
## How can I create a ZeroNet site?
2015-02-18 14:45:08 +00:00
2015-01-27 21:37:13 +00:00
Shut down zeronet if you are running it already
2015-02-18 14:45:08 +00:00
```bash
2015-01-12 19:35:23 +00:00
$ zeronet.py siteCreate
...
- Site private key: 23DKQpzxhbVBrAtvLEc2uvk7DZweh4qL3fn3jpM3LgHDczMK2TtYUq
- Site address: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
...
- Site created!
$ zeronet.py
...
```
2015-02-18 14:45:08 +00:00
Congratulations, you're finished! Now anyone can access your site using
`http://localhost:43110/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2`
2015-01-12 19:35:23 +00:00
2015-03-11 00:12:53 +00:00
Next steps: [ZeroNet Developer Documentation ](http://zeronet.readthedocs.org/en/latest/site_development/debug_mode/ )
2015-01-18 21:52:19 +00:00
2015-01-17 17:50:56 +00:00
2015-01-12 19:35:23 +00:00
## How can I modify a ZeroNet site?
2015-02-18 14:45:08 +00:00
* Modify files located in data/13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2 directory.
After you're finished:
```bash
2015-01-12 19:35:23 +00:00
$ zeronet.py siteSign 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
- Signing site: 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2...
Private key (input hidden):
```
2015-02-18 14:45:08 +00:00
* Enter the private key you got when created the site, then:
```bash
2015-01-12 19:35:23 +00:00
$ zeronet.py sitePublish 13DNDkMUExRf9Xa9ogwPKqp7zyHFEqbhC2
...
Site:13DNDk..bhC2 Publishing to 3/10 peers...
Site:13DNDk..bhC2 Successfuly published to 3 peers
- Serving files....
```
2015-02-18 14:45:08 +00:00
* That's it! You've successfully signed and published your modifications.
2015-01-12 23:29:40 +00:00
2015-01-17 17:50:56 +00:00
2015-01-12 23:29:40 +00:00
## If you want to help keep this project alive
Bitcoin: 1QDhxQ6PraUZa21ET5fYUCPgdrwBomnFgX
2015-01-15 22:24:51 +00:00
2015-01-18 21:52:19 +00:00
#### Thank you!
2015-01-17 17:50:56 +00:00
2015-02-18 14:45:08 +00:00
* More info, help, changelog, zeronet sites: http://www.reddit.com/r/zeronet/
2015-02-26 00:32:27 +00:00
* Come, chat with us: [#zeronet @ FreeNode ](https://kiwiirc.com/client/irc.freenode.net/zeronet ) or on [gitter ](https://gitter.im/HelloZeroNet/ZeroNet )
2015-04-07 23:19:56 +00:00
* Email: hello@noloop.me