All Projects → aletheia-foundation → aletheia-app

aletheia-foundation / aletheia-app

Licence: GPL-3.0 license
Alethia peer to peer publishing platform

Programming Languages

CSS
56736 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to aletheia-app

open-retractions
‼️ 📄 🔍 an API and web interface to check if a paper has been retracted
Stars: ✭ 43 (-6.52%)
Mutual labels:  science, publishing
web-verse
Toolbox for deep, resilient, markup-invariant linking into HTML documents without their cooperation
Stars: ✭ 25 (-45.65%)
Mutual labels:  science, publishing
aletheia-admin
Project documentation including our README, contributing guidelines and more.
Stars: ✭ 32 (-30.43%)
Mutual labels:  science, publishing
elife-xpub
eLife is an open-access journal and technology provider that publishes promising research in the life and biomedical sciences. This is their implementation of a submission and peer review system based on Coko PubSweet and xPub.
Stars: ✭ 29 (-36.96%)
Mutual labels:  science, publishing
Pandoc Scholar
Create beautiful and semantically meaningful articles with pandoc.
Stars: ✭ 342 (+643.48%)
Mutual labels:  science, publishing
allofplos
Repository for the allofplos project.
Stars: ✭ 45 (-2.17%)
Mutual labels:  science, publishing
plostime
Publication delays at PLOS and 3,475 other journals
Stars: ✭ 19 (-58.7%)
Mutual labels:  science, publishing
crossref
Client for the Crossref API
Stars: ✭ 29 (-36.96%)
Mutual labels:  science, publishing
Django Publications
A Django app for managing scientific publications.
Stars: ✭ 95 (+106.52%)
Mutual labels:  science, publishing
2read
Convert article in current tab to readable form and upload it to P2P network - IPFS
Stars: ✭ 130 (+182.61%)
Mutual labels:  ipfs, publishing
scipp
Multi-dimensional data arrays with labeled dimensions
Stars: ✭ 55 (+19.57%)
Mutual labels:  science
AlertaDengue
Portal de dados do Projeto Alerta Dengue
Stars: ✭ 16 (-65.22%)
Mutual labels:  science
simple-spectro
Very cheap, autonomous and precise spectrophotometer for DIY biology and chemistry.
Stars: ✭ 36 (-21.74%)
Mutual labels:  science
valist
Web3-native software distribution. Publish and install executables, Docker images, WebAssembly, and more. Powered by Ethereum, IPFS, and Filecoin.
Stars: ✭ 107 (+132.61%)
Mutual labels:  ipfs
js-threaddb
This project has been moved to https://github.com/textileio/js-textile
Stars: ✭ 13 (-71.74%)
Mutual labels:  ipfs
tales-science-data
Companion repo to the GitBook, notes on Data Science topics
Stars: ✭ 41 (-10.87%)
Mutual labels:  science
mlearn
Benchmark Suite for Machine Learning Interatomic Potentials for Materials
Stars: ✭ 89 (+93.48%)
Mutual labels:  science
getfem
Mirror of GetFEM repository
Stars: ✭ 23 (-50%)
Mutual labels:  science
is-ipfs
A set of utilities to help identify IPFS resources on the web
Stars: ✭ 99 (+115.22%)
Mutual labels:  ipfs
fftw
FFTW3 binding for Rust
Stars: ✭ 46 (+0%)
Mutual labels:  science

alt tag

Publish research for free, access research for free.

Downloadable Aletheia App

About

Decentralisation

  • Decentralisation, as stated on Wikipedia, is the process of redistributing or dispersing functions, powers, people or things away from a central location or authority. While centralization, especially in the governmental sphere, is widely studied and practiced, there is no common definition or understanding of decentralization. The meaning of decentralization may vary in part because of the different ways it is applied. Concepts of decentralization have been applied to group dynamics and management science in private businesses and organizations, political science, law and public administration, economics and technology. Aletheia is technology, but using a broad definition of decentalisation rather than in a specifically technological one is a deliberate choice because Aletheia isn't just technology, it's also community. Decentralisation is as desirable state because it is strong. No single point of failure means it’s very hard for a system to collapse through neglect or to be taken down by a malicious actor. No single point of control means the system cannot be controlled by vested interests. Utilising decentralisation is an attempt to build a truly free and incorruptible system, a system that can be applied to, but also be applied past technology.

Why a downloadable app?

  • This is one of the ways Aletheia manifests its decentralised nature, by residing on a number of inividual computers across potentially a hundred or more legal jurisdictions. If Aletheia was a web platform it would be vulnerable because a website can be blocked, a website can be taken down, the server hosting the website could be physically damaged, it can have its contents deleted or can be turned off. A website is a single point of failure. Mirroring websites can only do so much. Try turning off, deleting the contents of, or destroying hundreds of computers in hundreds of different countries, it's much harder. By the same token, control of a website could be obtained through financially acquiring the domain name, acquiring the website host, acquiring the server or the data centre it resides in. Obtaining control of hundreds of personal computers spread across the globe is much more difficult, meaning in both cases, the degree to which Aletheia can be assailed and controled by malicious actors is lowered. Decentralisation is strength.

Ethereum

  • Ethereum is a blockchain technology for agreeing on data and logic in a completely decentralised way. Ethereum will be used to manage rules about which documents are approved by the network. Ethereum uses solidity smart contracts which are stored in the /contracts directory.

Truffle

  • Truffle is a framework for developing, testing and deploying Ethereum contracts.

Filesharing

  • IPFS is a peer to peer filesharing technology similar to bittorrent. A core aspect of aletheia will be a private ipfs network which shares only the files which have been approved by the community. Currently we simply use the public IPFS network to share files.

Livenet vs Testnet vs Development

  • Despite using the Ethereum code, we do not have to use the main ethereum blockchain. To keep costs down we plan on going live with a sperate blockchain. For local development, a blockchain can be faked using testrpc. For public testing a testnet is being deployed for testing interactions between multiple aletheia clients.

Electron

  • Electron is a framework for developing cross platform applications with HTML and JavaScript. main.js bootstraps the app, each page is then self contained within the ./app directory. In future we may add a javascript UI framework such as react or angular.

Requirements

  • Nodejs 6+
  • Python 2 (not python 3) test this with python --version
  • A running local IPFS node
  • A running ethereum node. Recommended to use testrpc for local development and geth for the testnet

OSX instructions

  git clone https://github.com/aletheia-foundation/aletheia-app.git
  cd aletheia-app

  # note, this is not strictly required for local development as the fake ethereum client `testrpc` can be used.
  brew install ethereum # installs geth
  brew install nodejs
  # OSX should have python 2.X pre installed
  npm install -g electron

Ubuntu instructions

These instructions were tested on ubuntu 16.10

  git clone https://github.com/aletheia-foundation/aletheia-app.git
  cd aletheia-app
  # this installs nodejs 6.x, geth and electron
  sudo ./scripts/install-ubuntu.sh

Run project in web browser

Clone this repo and cd into its directory

This project requires IPFS and Ethereum clients to be running in the background

  # open three terminal tabs in the project folder:
  # in tab 1
  npm config set python $(which python) # Python 2 is needed, not python 3
  npm install
  npm run ethereum-local
  # in tab 2 (must be in project directory)
  npm run ipfs-local
  # in tab 3 (must be in project directory)
  npm run start:web # (app will start but be unable to connect to filesharing or blockchain)

Test the app build on the testnet

npm run electron:serve

note: this will not be able to connect to the local ethereum testrpc (npm run ethereum-local) and can only be tested on the real testnet e.g.:

    # In tab 1
    npm run ethereum-testnet 
    
    # in tab 2 
    npm run ipfs-local
    
    # In tab 3
    npm run electron:serve

Test the dist build

You can also generate the actual executables for different platforms with

    npm run electron:linux
    npm run electron:windows
    npm run electron:mac

Video Tutorial

Note: The video mentions installing/running the project on Mac OS. The steps followed in the video are also applicable to any Linux distribution (Ubuntu, CentOS, ...).

Tests

Linting

npm run lint

Tests run in a browser with karma.

  npm run test:js

Smart contract tests with truffle

  # in tab 1 
  npm run ethereum-local

  # in tab 2
  npm run test:truffle

Testing notes

Test data

npm run test-data

Start the app with another user

ACCOUNT_NUMBER=1 npm run start

Force mine a block

Call this from debugger window:

  web3.currentProvider.sendAsync({
        jsonrpc: "2.0",
        method: "evm_mine",
        id: 12345
    }, function(err, result) {
      // this is your callback
    });
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].