ui changes and work on whitepaper

This commit is contained in:
Kevin Froman 2019-03-11 00:10:37 -05:00
parent 4fb01bac0e
commit 800c061e94
10 changed files with 69 additions and 5 deletions

BIN
docs/network-comparison.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -132,3 +132,13 @@ We seek to protect the following information:
We assume that Tor onion services (v3) and I2P services cannot be trivially deanonymized, and that the underlying cryptographic primitives we employ cannot be broken in any manner faster than brute force unless a quantum computer is used.
Once quantum safe algorithms are more mature and have decent high level libraries, they will be deployed.
# Comparisons to other P2P software
Since Onionr is far from the first to implement many of these ideas (on their own), this section compares Onionr to other networks
![network comparison image](network-comparison.png)
# Conclusion
If successful, Onionr will be a complete decentralized platform for anonymous computing, complete with limited metadata exposure, both node and user anonymity, and spam prevention

View File

@ -488,7 +488,7 @@ class OnionrCommunicatorDaemon:
score = str(self.getPeerProfileInstance(i).score)
logger.info(i + ', score: ' + score)
def peerAction(self, peer, action, data=''):
def peerAction(self, peer, action, data='', returnHeaders=False):
'''Perform a get request to a peer'''
if len(peer) == 0:
return False
@ -512,7 +512,7 @@ class OnionrCommunicatorDaemon:
else:
self._core.setAddressInfo(peer, 'lastConnect', self._core._utils.getEpoch())
self.getPeerProfileInstance(peer).addScore(1)
return retData
return retData # If returnHeaders, returns tuple of data, headers. if not, just data string
def getPeerProfileInstance(self, peer):
'''Gets a peer profile instance from the list of profiles, by address name'''

View File

@ -480,7 +480,7 @@ class OnionrUtils:
retData = False
return retData
def doGetRequest(self, url, port=0, proxyType='tor', ignoreAPI=False):
def doGetRequest(self, url, port=0, proxyType='tor', ignoreAPI=False, returnHeaders=False):
'''
Do a get request through a local tor or i2p instance
'''
@ -520,7 +520,10 @@ class OnionrUtils:
if not 'ConnectTimeoutError' in str(e) and not 'Request rejected or failed' in str(e):
logger.debug('Error: %s' % str(e))
retData = False
return retData
if returnHeaders:
return (retData, response_headers)
else:
return retData
def strToBytes(self, data):
try:

View File

@ -28,6 +28,10 @@ flask_blueprint = Blueprint('mail', __name__)
c = core.Core()
kv = c.keyStore
@flask_blueprint.route('/mail/ping')
def mail_ping():
return 'pong!'
@flask_blueprint.route('/mail/deletemsg/<block>', methods=['POST'])
def mail_delete(block):
if not c._utils.validateHash(block):

View File

@ -18,6 +18,9 @@
<span class='logoText'>Onionr Mail ✉️</span>
<br><br>
<div><a href='/' class='idLink'>Home</a> <button class='refresh'>Refresh Page</button></div>
<div class='mailPing'>
API server either shutdown, has disabled mail, or has experienced a bug.
</div>
<br>
<div>Current Used Identity: <input class='myPub' type='text' readonly></div>
<br><br>

View File

@ -53,6 +53,11 @@ input{
margin: 1em;
}
.mailPing{
display: none;
color: orange;
}
.danger{
color: red;
}

View File

@ -94,6 +94,27 @@ function deleteMessage(bHash){
})
}
function mailPing(){
fetch('/mail/ping', {
"method": "get",
headers: {
"token": webpass
}})
.then(function(resp) {
var pings = document.getElementsByClassName('mailPing')
if (resp.ok){
for (var i=0; i < pings.length; i++){
pings[i].style.display = 'none';
}
}
else{
for (var i=0; i < pings.length; i++){
pings[i].style.display = 'block';
}
}
})
}
function loadInboxEntries(bHash){
fetch('/getblockheader/' + bHash, {
headers: {
@ -201,12 +222,16 @@ function getSentbox(){
var toLabel = document.createElement('span')
toLabel.innerText = 'To: '
var toEl = document.createElement('input')
var sentDate = document.createElement('span')
var humanDate = new Date(0)
humanDate.setUTCSeconds(resp[i]['date'])
var preview = document.createElement('span')
var deleteBtn = document.createElement('button')
var message = resp[i]['message']
deleteBtn.classList.add('deleteBtn', 'dangerBtn')
deleteBtn.innerText = 'X'
toEl.readOnly = true
sentDate.innerText = humanDate
if (resp[i]['name'] == null){
toEl.value = resp[i]['peer']
}
@ -219,6 +244,7 @@ function getSentbox(){
entry.appendChild(toLabel)
entry.appendChild(toEl)
entry.appendChild(preview)
entry.appendChild(sentDate)
entry.onclick = (function(tree, el, msg) {return function() {
console.log(resp)
if (! entry.classList.contains('deleteBtn')){
@ -315,4 +341,7 @@ fetch('/friends/list', {
//alert(resp[keys[i]]['name'])
}
})
setActiveTab('inbox')
setActiveTab('inbox')
setInterval(function(){mailPing()}, 10000)
mailPing()

View File

@ -20,6 +20,9 @@
<span class='logoText'>Onionr Web Control Panel</span>
<br><br>
<button id='shutdownNode'>Shutdown Node</button> <button id='refreshStats'>Refresh Stats</button>
<br><br>
<label>Site Hash: <input type='text' id='siteViewer'> <button id='openSite' class='primaryBtn openSiteBtn'>Open Onionr Site</button></label>
<br>
<br><br><a class='idLink' href='/mail/'>Mail</a> - <a class='idLink' href='/friends/'>Friend Manager</a>
<h2>Stats</h2>
<p>Uptime: <span id='uptime'></span></p>
@ -32,5 +35,6 @@
<script src='/shared/misc.js'></script>
<script src='/shared/main/stats.js'></script>
<script src='/shared/panel.js'></script>
<script src=/shared/sites.js></script>
</body>
</html>

View File

@ -172,4 +172,10 @@ body{
.primaryBtn{
background-color:#396BAC;
}
.openSiteBtn{
padding: 5px;
border: 1px solid black;
border-radius: 5px;
}