added dark mode
parent
14334e7197
commit
215c8d2c3a
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
# About
|
# About
|
||||||
|
|
||||||
Onionr ("Onion Relay") is a decentralized, peer-to-peer communication network, designed to be anonymous and resistant to (meta)data analysis, spam, and corruption.
|
Onionr ("Onion Relay") is a decentralized/distributed peer-to-peer communication network, designed to be anonymous and resistant to (meta)data analysis, spam, and corruption.
|
||||||
|
|
||||||
Onionr stores data in independent packages referred to as 'blocks'. The blocks are synced to all other nodes in the network. Blocks and user IDs cannot be easily proven to have been created by a particular user. Even if there is enough evidence to believe that a specific user created a block, nodes still operate behind Tor or I2P and as such cannot be trivially unmasked.
|
Onionr stores data in independent packages referred to as 'blocks'. The blocks are synced to all other nodes in the network. Blocks and user IDs cannot be easily proven to have been created by a particular user. Even if there is enough evidence to believe that a specific user created a block, nodes still operate behind Tor or I2P and as such cannot be trivially unmasked.
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
After installing Onionr, there are several things to do:
|
After installing Onionr, there are several things to do:
|
||||||
|
|
||||||
1. Setup a [deterministic address](usage/deterministic.md) (optional)
|
1. Setup a [deterministic address](deterministic.md) (optional)
|
||||||
2. Start your node `/path/to/onionr.sh start`
|
2. Start your node `/path/to/onionr.sh start`
|
||||||
3. Copy your ID and share it with friends
|
3. Copy your ID and share it with friends
|
|
@ -25,11 +25,11 @@ import filepaths
|
||||||
DENIABLE_PEER_ADDRESS = "OVPCZLOXD6DC5JHX4EQ3PSOGAZ3T24F75HQLIUZSDSMYPEOXCPFA===="
|
DENIABLE_PEER_ADDRESS = "OVPCZLOXD6DC5JHX4EQ3PSOGAZ3T24F75HQLIUZSDSMYPEOXCPFA===="
|
||||||
PASSWORD_LENGTH = 25
|
PASSWORD_LENGTH = 25
|
||||||
ONIONR_TAGLINE = 'Private P2P Communication - GPLv3 - https://Onionr.net'
|
ONIONR_TAGLINE = 'Private P2P Communication - GPLv3 - https://Onionr.net'
|
||||||
ONIONR_VERSION = '0.0.0' # for debugging and stuff
|
ONIONR_VERSION = '0.1.0' # for debugging and stuff
|
||||||
ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION)
|
ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION)
|
||||||
API_VERSION = '0' # increments of 1; only change when something fundamental about how the API works changes. This way other nodes know how to communicate without learning too much information about you.
|
API_VERSION = '0' # increments of 1; only change when something fundamental about how the API works changes. This way other nodes know how to communicate without learning too much information about you.
|
||||||
MIN_PY_VERSION = 7
|
MIN_PY_VERSION = 7
|
||||||
DEVELOPMENT_MODE = True
|
DEVELOPMENT_MODE = False
|
||||||
MAX_BLOCK_TYPE_LENGTH = 15
|
MAX_BLOCK_TYPE_LENGTH = 15
|
||||||
MAX_BLOCK_CLOCK_SKEW = 120
|
MAX_BLOCK_CLOCK_SKEW = 120
|
||||||
MAIN_PUBLIC_KEY_SIZE = 32
|
MAIN_PUBLIC_KEY_SIZE = 32
|
||||||
|
|
|
@ -12,6 +12,7 @@ import coredb
|
||||||
import onionrproofs
|
import onionrproofs
|
||||||
from onionrproofs import subprocesspow
|
from onionrproofs import subprocesspow
|
||||||
import logger
|
import logger
|
||||||
|
|
||||||
def insert_block(data: Union[str, bytes], header: str ='txt',
|
def insert_block(data: Union[str, bytes], header: str ='txt',
|
||||||
sign: bool =False, encryptType:str ='', symKey:str ='',
|
sign: bool =False, encryptType:str ='', symKey:str ='',
|
||||||
asymPeer:str ='', meta:dict = {},
|
asymPeer:str ='', meta:dict = {},
|
||||||
|
@ -161,4 +162,4 @@ def insert_block(data: Union[str, bytes], header: str ='txt',
|
||||||
else:
|
else:
|
||||||
events.event('insertblock', {'content': plaintext, 'meta': plaintextMeta, 'hash': retData, 'peer': bytesconverter.bytes_to_str(asymPeer)}, threaded = True)
|
events.event('insertblock', {'content': plaintext, 'meta': plaintextMeta, 'hash': retData, 'peer': bytesconverter.bytes_to_str(asymPeer)}, threaded = True)
|
||||||
coredb.daemonqueue.daemon_queue_add('remove_from_insert_list', data=dataNonce)
|
coredb.daemonqueue.daemon_queue_add('remove_from_insert_list', data=dataNonce)
|
||||||
return retData
|
return retData
|
||||||
|
|
|
@ -40,4 +40,4 @@ def get_human_readable_ID(pub=''):
|
||||||
|
|
||||||
def get_base32(words):
|
def get_base32(words):
|
||||||
'''converts mnemonic to base32'''
|
'''converts mnemonic to base32'''
|
||||||
return unpaddedbase32.b32encode(niceware.passphrase_to_bytes(words.replace(DELIMITER, ' ')))
|
return unpaddedbase32.b32encode(niceware.passphrase_to_bytes(words.split(DELIMITER)))
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
"insert_deniable_blocks": true,
|
"insert_deniable_blocks": true,
|
||||||
"max_block_age": 2678400,
|
"max_block_age": 2678400,
|
||||||
"public_key": "",
|
"public_key": "",
|
||||||
"random_bind_ip": false,
|
"random_bind_ip": true,
|
||||||
"use_bootstrap_list": true,
|
"use_bootstrap_list": true,
|
||||||
"store_plaintext_blocks": true,
|
"store_plaintext_blocks": true,
|
||||||
"show_notifications": true
|
"show_notifications": true
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
<link rel='stylesheet' href='/shared/main/PNotifyBrightTheme.css'>
|
<link rel='stylesheet' href='/shared/main/PNotifyBrightTheme.css'>
|
||||||
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
||||||
<link rel='stylesheet' href='/shared/main/bulma.min.css'>
|
<link rel='stylesheet' href='/shared/main/bulma.min.css'>
|
||||||
|
<link rel='stylesheet' href='/shared/main/bulmaswatch.min.css'>
|
||||||
<link rel="stylesheet" href='/shared/main/styles-new.css'>
|
<link rel="stylesheet" href='/shared/main/styles-new.css'>
|
||||||
<link rel="stylesheet" href="theme.css">
|
<link rel="stylesheet" href="theme.css">
|
||||||
<script defer src="/shared/base32.js"></script>
|
<script defer src="/shared/base32.js"></script>
|
||||||
|
@ -23,6 +24,7 @@
|
||||||
<script defer src='/shared/misc.js'></script>
|
<script defer src='/shared/misc.js'></script>
|
||||||
<script defer src="detect-plaintext-storage.js"></script>
|
<script defer src="detect-plaintext-storage.js"></script>
|
||||||
<script defer src='sethumanreadable.js'></script>
|
<script defer src='sethumanreadable.js'></script>
|
||||||
|
<script defer src="default-circle-picker.js"></script>
|
||||||
<script defer src='board.js'></script>
|
<script defer src='board.js'></script>
|
||||||
<script defer src='autorefresh.js'></script>
|
<script defer src='autorefresh.js'></script>
|
||||||
</head>
|
</head>
|
||||||
|
@ -111,7 +113,7 @@
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="field has-addons">
|
<div class="field has-addons">
|
||||||
<p class="control">
|
<p class="control">
|
||||||
<a class="button is-static">Board Name</a>
|
<a class="button is-static">Circle Name</a>
|
||||||
</p>
|
</p>
|
||||||
<p class="control is-expanded">
|
<p class="control is-expanded">
|
||||||
<input id='feedIDInput' class="input" placeholder="Board name" value="global">
|
<input id='feedIDInput' class="input" placeholder="Board name" value="global">
|
||||||
|
@ -120,6 +122,20 @@
|
||||||
<a class="button is-success" id='refreshFeed'>Refresh Feed</a>
|
<a class="button is-success" id='refreshFeed'>Refresh Feed</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<label for="recommendedBoards">Main Circles:</label>
|
||||||
|
<select id="recommendedBoards">
|
||||||
|
<option value="global">Global</option>
|
||||||
|
<option value="onionr">Onionr</option>
|
||||||
|
<option value="games">Games</option>
|
||||||
|
<option value="politics">Politics</option>
|
||||||
|
<option value="tech">Tech</option>
|
||||||
|
<option value="random">Random</option>
|
||||||
|
<option value="privacy">Privacy</option>
|
||||||
|
</select>
|
||||||
|
<p class="control">
|
||||||
|
<br>
|
||||||
|
Note: All posts in Circles are publicly accessible.
|
||||||
|
</p>
|
||||||
<input type="checkbox" class="checkbox" id="refreshCheckbox" checked>
|
<input type="checkbox" class="checkbox" id="refreshCheckbox" checked>
|
||||||
<label for="refreshCheckbox">Auto refresh feed</label>
|
<label for="refreshCheckbox">Auto refresh feed</label>
|
||||||
<br>
|
<br>
|
||||||
|
@ -128,7 +144,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<span id='loadingBoard'>Loading board... <i class="fas fa-yin-yang fa-spin"></i></span>
|
<span id='loadingBoard'>Loading Circle... <i class="fas fa-yin-yang fa-spin"></i></span>
|
||||||
<div id='feed'>
|
<div id='feed'>
|
||||||
<span id='none'>None yet, try refreshing 😃</span>
|
<span id='none'>None yet, try refreshing 😃</span>
|
||||||
<!--Message Items are appended here based on template-->
|
<!--Message Items are appended here based on template-->
|
||||||
|
|
|
@ -4,3 +4,8 @@
|
||||||
word-break:break-word;
|
word-break:break-word;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body{
|
||||||
|
background-color: #212224;
|
||||||
|
color: white;
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
||||||
<link rel='stylesheet' href="/shared/main/PNotifyBrightTheme.css">
|
<link rel='stylesheet' href="/shared/main/PNotifyBrightTheme.css">
|
||||||
<link rel="stylesheet" href="/shared/main/bulma.min.css">
|
<link rel="stylesheet" href="/shared/main/bulma.min.css">
|
||||||
|
<link rel='stylesheet' href='/shared/main/bulmaswatch.min.css'>
|
||||||
<link rel="stylesheet" href="/shared/main/styles-new.css">
|
<link rel="stylesheet" href="/shared/main/styles-new.css">
|
||||||
<link rel="stylesheet" href="/mail/mail.css">
|
<link rel="stylesheet" href="/mail/mail.css">
|
||||||
<script defer src='/shared/node_modules/pnotify/dist/iife/PNotify.js'></script>
|
<script defer src='/shared/node_modules/pnotify/dist/iife/PNotify.js'></script>
|
||||||
|
|
|
@ -23,9 +23,9 @@ to = document.getElementById('draftID')
|
||||||
subject = document.getElementById('draftSubject')
|
subject = document.getElementById('draftSubject')
|
||||||
friendPicker = document.getElementById('friendSelect')
|
friendPicker = document.getElementById('friendSelect')
|
||||||
|
|
||||||
function sendMail(to, message, subject){
|
function sendMail(toData, message, subject){
|
||||||
//postData = {"postData": '{"to": "' + to + '", "message": "' + message + '"}'} // galaxy brain
|
//postData = {"postData": '{"to": "' + to + '", "message": "' + message + '"}'} // galaxy brain
|
||||||
postData = {'message': message, 'to': to, 'type': 'pm', 'encrypt': true, 'meta': JSON.stringify({'subject': subject})}
|
postData = {'message': message, 'to': toData, 'type': 'pm', 'encrypt': true, 'meta': JSON.stringify({'subject': subject})}
|
||||||
postData = JSON.stringify(postData)
|
postData = JSON.stringify(postData)
|
||||||
sendForm.style.display = 'none'
|
sendForm.style.display = 'none'
|
||||||
fetch('/insertblock', {
|
fetch('/insertblock', {
|
||||||
|
@ -41,6 +41,7 @@ function sendMail(to, message, subject){
|
||||||
PNotify.success({
|
PNotify.success({
|
||||||
text: 'Queued for sending!'
|
text: 'Queued for sending!'
|
||||||
})
|
})
|
||||||
|
to.value = subject.value = messageContent.value = ""
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.min.css">
|
||||||
<link rel='stylesheet' href='/shared/main/PNotifyBrightTheme.css'>
|
<link rel='stylesheet' href='/shared/main/PNotifyBrightTheme.css'>
|
||||||
<link rel="stylesheet" href="/shared/main/bulma.min.css">
|
<link rel="stylesheet" href="/shared/main/bulma.min.css">
|
||||||
|
<link rel='stylesheet' href='/shared/main/bulmaswatch.min.css'>
|
||||||
<link rel="stylesheet" href="/shared/main/styles-new.css">
|
<link rel="stylesheet" href="/shared/main/styles-new.css">
|
||||||
<script defer src="/shared/node_modules/pnotify/dist/iife/PNotify.js"></script>
|
<script defer src="/shared/node_modules/pnotify/dist/iife/PNotify.js"></script>
|
||||||
<script defer src="/shared/node_modules/pnotify/dist/iife/PNotifyButtons.js"></script>
|
<script defer src="/shared/node_modules/pnotify/dist/iife/PNotifyButtons.js"></script>
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
<p>Onionr is a private decentralized communication network</p>
|
<p>Onionr is a private decentralized communication network</p>
|
||||||
<p><i class="fab fa-gitlab"></i> <a href="https://gitlab.com/beardog/onionr">Source code</a></p>
|
<p><i class="fab fa-gitlab"></i> <a href="https://gitlab.com/beardog/onionr">Source code</a></p>
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<b>Core developers:</b>
|
<b>Core developers:</b>
|
||||||
|
@ -12,6 +11,12 @@
|
||||||
<li><a href="https://www.aaronesau.com/">Aaron Esau</a></li>
|
<li><a href="https://www.aaronesau.com/">Aaron Esau</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<b>Contributors:</b>
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://invisamage.com/">Travis Kipp</a> (web UI and CSS)</li>
|
||||||
|
<li><a href="https://k7dxs.net/">Duncan Simpson</a> Packaging help</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<b>Onionr is built with:</b>
|
<b>Onionr is built with:</b>
|
||||||
|
|
|
@ -58,4 +58,12 @@ html {
|
||||||
.aboutLogo{
|
.aboutLogo{
|
||||||
max-width: 25%;
|
max-width: 25%;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
html{
|
||||||
|
background-color: #212224;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.textarea{
|
||||||
|
background-color: #212224;
|
||||||
|
color: white;
|
||||||
}
|
}
|
|
@ -16,7 +16,7 @@ async function userIcon(pubkey, imgSize=64){
|
||||||
pubkey = await sha256(base32.decode.asBytes(pubkey))
|
pubkey = await sha256(base32.decode.asBytes(pubkey))
|
||||||
let options = {
|
let options = {
|
||||||
//foreground: [0,0,0,1], // rgba black
|
//foreground: [0,0,0,1], // rgba black
|
||||||
background: [255, 255, 255, 255], // rgba white
|
background: [0, 0, 0, 0], // rgba white
|
||||||
//margin: 0.1,
|
//margin: 0.1,
|
||||||
size: imgSize,
|
size: imgSize,
|
||||||
format: 'svg' // use SVG instead of PNG
|
format: 'svg' // use SVG instead of PNG
|
||||||
|
|
Loading…
Reference in New Issue