# README
The backend node of Colla Network, a decentralized peer-to-peer communication and storage network.
Table of Contents
Introduction
Colla Network is a decentralized peer-to-peer communication and storage network, Colla DApp (e.g. CollaChat) connects to Colla Network via selected Colla Node, there is no centralized storage and control of user data, user can specify which node or even easily setup own node(s) to connect to.
Build
Optimized Settings
It's recommended to optimize following settings before building your own executable file:
No | Package | File | Default Setting | Recommended Setting |
---|---|---|---|---|
1 | [email protected] | multiplex.go | var MaxMessageSize = 1 << 20 | var MaxMessageSize = 1 << 30 |
2 | [email protected] | internal\net\massage_manager.go | var dhtReadMessageTimeout = 10 * time.Second | var dhtReadMessageTimeout = 300 * time.Second |
3 | [email protected] | network\network.go | const MessageSizeMax = 1 << 22 | const MessageSizeMax = 1 << 30 |
4 | [email protected] | msgio.go | defaultMaxSize = 8 * 1024 * 1024 | defaultMaxSize = 1024 * 1024 * 1024 |
Installation
Get ready your server, domain and certificate first. You may rent a cloud server from CSP (or try on from a free instance), buy a domain or get a free one, use ACME to automatically issue & renew the free certificates from Let's Encrypt.
Tested OS
No | OS | Version and Spec. |
---|---|---|
1 | Ubuntu | 16.04/18.04/20.04, minimal 1vCPUs + 1GiB |
2 | Windows | Windows Server 2016 |
Linux
- Download and uncompress
azureuser@myVM:~$ sudo wget https://github.com/curltech/go-colla-node/releases/download/v0.0.2/go-colla-node-linux-0.0.2.tar.gz
azureuser@myVM:~$ sudo tar zxvf go-colla-node-linux-0.0.2.tar.gz
- Configure and run
azureuser@myVM:~$ cd go-colla-node
azureuser@myVM:~/go-colla-node$ vi conf/peer1.yml
azureuser@myVM:~/go-colla-node$ ./main (or ./main -appname peer1)
- Use custom node in Colla DApp (e.g. CollaChat)
azureuser@myVM:~/go-colla-node$ sqlite3 peer1.db
sqlite> select discoveryaddress from blc_myselfpeer;
/dns4/peer1.curltech.cc/tcp/5720/wss/p2p/12D3KooWNwQ9pHZzmfjk8rZp4a1k5gXhibKxZMBdkdg1mTJEAYse
Windows
Use zip file for Windows instead of tar.gz file for Linux, and follow the same steps as above.
License
Copyright 2020-2021 CURL TECH PTE. LTD.
Licensed under the AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html