USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Go to file
2021-12-28 22:48:28 -05:00
.github/workflows Raised goreleaser timeout 2021-12-27 01:04:29 -05:00
config Implemented config and cache dir creation 2021-12-28 13:30:42 -05:00
database Implemented conversation threading, fixed #6 2021-12-28 19:25:24 -05:00
models Implemented conversation threading, fixed #6 2021-12-28 19:25:24 -05:00
tui Implemented message preview, optimized list layout 2021-12-28 21:05:17 -05:00
.editorconfig Added .editorconfig 2021-12-22 20:46:57 -05:00
.gitignore Refactored and enhanced OpenArticle 2021-12-26 13:48:40 -05:00
.goreleaser.yaml Updated .goreleaser.yaml 2021-12-26 20:28:14 -05:00
go.mod Implemented proper article validation 2021-12-26 19:24:16 -05:00
go.sum Implemented proper article validation 2021-12-26 19:24:16 -05:00
LICENSE Added LICENSE 2021-12-27 01:41:53 +00:00
README.md Implemented message preview, optimized list layout 2021-12-28 21:05:17 -05:00
screenshot01.png Updated screenshot01 and cleaned formatting 2021-12-27 00:25:50 -05:00
superhighway84.go Implemented possible fix for #13 2021-12-28 22:48:28 -05:00
superhighway84.jpeg Refactored and extended implementation 2021-12-25 13:33:33 -05:00
superhighway84.png Added README.md, updated .gitignore 2021-12-24 13:44:59 -05:00

Superhighway84

===============================================================================
                       INTERACTIVE ASYNC / FULL DUPLEX
===============================================================================

                            Dial Up To 19.2 Kbps
                                  
                                   with

    _  _ _ __ ____                  __   _      __                   ___  ____
   /  / / // / __/_ _____  ___ ____/ /  (_)__ _/ / _    _____ ___ __( _ )/ / /
  _\ _\_\_\\_\ \/ // / _ \/ -_) __/ _ \/ / _ \/ _ \ |/|/ / _ \/ // / _  /_  _/
 /  / / // /___/\_,_/ .__/\__/_/ /_//_/_/\_, /_//_/__,__/\_,_/\_, /\___/ /_/
                   /_/                  /___/                /___/


       ::: USENET-INSPIRED DECENTRALIZED INTERNET DISCUSSION SYSTEM :::


  The V.H.S. (Very High Speed) Superhighway84 platform is more than just the
fastest decentralized, usenet-inspired communications platform available. It is
 also the first one to be based on the latest IPFS technology available today!

    Superhighway84 offers the most spectacular features under the Spectrum.
                                       
                             100% Error Protection
                         Data and Character Compression
                         Alternate Bell Compatible Mode
                         Long Haul Satellite Operation
                              Network Diagnostics
                                 Fallback Mode
                                    And More!


      The Superhighway84 modern decentralized internet discussion system.
                         It should cost a lot more than $0.


Screenshot


INSTALLATION
------------

Clone this repository and run:

$ go build .

The binary will be available at ./superhighway84 and can be moved wherever you
please.

If you don't have IPFS installed already, make sure to do so in order to be able
to initialize your IPFS repository:

https://docs.ipfs.io/install/command-line/

The IPFS repository can be initialized using the following command:

$ ipfs init



RUNNING
-------

First, check ulimit -n and verify that it's at a reasonable amount. IPFS
requires it to be large enough (>= 2048) in order to work properly over time.

Afterwards you can simply launch the binary:

$ ./superhighway84

A setup wizard will help you with initial configuration. Please make sure to
have at least HOME and EDITOR exported in your environment.

In case you would like to use a dedicated ipfs repository for Superhighway84,
you will have to export a different IPFS_PATH and make sure it was initialized
beforehand:

$ export IPFS_PATH=~/.ipfs-sh84
$ ipfs init
$ superhighway84

In case you're intending to run the official IPFS daemon and Superhighway84 in
parallel, be sure to adjust the ports in their respective IPFS repos (e.g.
~/.ipfs and ~/.ipfs-sh84) so that they won't utilize the same port numbers.
The ports 4001, 5001 and 8080 are relevant and should be adjusted to something
other for every new repo/IPFS node that will run in parallel, e.g.:

  "Addresses": {
    "Swarm": [
      "/ip4/0.0.0.0/tcp/4002",
      "/ip6/::/tcp/4002",
      "/ip4/0.0.0.0/udp/4002/quic",
      "/ip6/::/udp/4002/quic"
    ],
    "Announce": [],
    "NoAnnounce": [],
    "API": "/ip4/127.0.0.1/tcp/5002",
    "Gateway": "/ip4/127.0.0.1/tcp/8081"
  },

NOTE: When running Superhighway84 for the first time it might seem like it's
"hanging" at the command prompt. Usually it isn't hanging but rather searching
for peer it can connect to in order to synchronize the database. Depending on
how many people are online, this process might take _some time_, please be
patient.



USAGE
-----

Keyboard shortcuts:

     C-r: Refresh
     C-h: Focus groups list
C-l, C-k: Focus articles list
     C-j: Focus preview pane
     C-q: Quit
       k: Move up in list
       j: Move down in list
       h: Move left in list
       l: Move right in list
       g: Move to the beginning of list/text
       G: Move to the end of list/text
      CR: Select item in list
       n: Publish new article
       r: Reply to selected article



KNOWN LIMITATIONS
-----------------

- The OrbitDB that Superhighway84 uses is a public database, meaning everyone
  can alter its data. Since its using a standard _docstore_, PUT and DELETE
  events can alter existing data. This issue will be solved in the future by
  customizing the store to ignore these types of events.

- Probably plenty more that have yet to been found...



CREDITS
-------

- Superhighway84 name, code and graphics by mrusme
  https://github.com/mrusme

- Logo backdrop by Swift
  https://twitter.com/Swift_1_2/status/1114865117533888512