[piston.web] First Open Source Steem GUI - Searching for alpha testers

Piston.web - Standalone User Interface

Many may already know piston as a tool that simplifies interaction with Steem/Steemit. You can read, post, comment, edit, transfer funds and much more, if you are willing to use the command line.

This changes now. With piston.web, the toolbox now comes with graphical user interface that you can access via your browser. It is fully independent of steemit.com, which means that you can do what you love doing on Steem, even if steemit.com goes down.

Available Features

  • browsing steem posts
  • reading full posts and comments
  • reply to topics and comments
  • upvote/downvote
  • read account details
    • recommended posts
    • blog posts
    • funds
    • transaction history
  • integrated wallet
  • full encrypted (AES + BIP32) for private keys
  • import keys from account name and password

Screenshots

Browse:

Account

Funds:

Post:

Wallet:

Installation

Until we leave pre-alpha, piston.web is on a different branch.

git clone https://github.com/xeroc/piston
cd piston
git checkout feature/standalone-web
make install-user
# install extra requirements for piston.web
pip install -r requirements-web.txt

Usage

piston web

On first run, you will be asked to provide a passphrase for your new wallet. Empty password are allowed but result in private keys being stored in plain text.

After that, you will see

 * Running on http://127.0.0.1:5054/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 227-869-909

Ignore the debugging output and start using piston.web in your browser
by accessing

http://127.0.0.1:5054/

NOTE: piston.web will only be reachable from the same machine (localhost).

Technologies

Backend

The backend is written in python using

  • Flask (with Jinja2)
  • python-steem.

It offers the HTML files and a Socket-IO for real-time communications.

Frontend

These technologies have been used so far in piston.web:

  • Bootstrap
  • Markdown
  • Font-Awesome
  • Plain Javascript

Wallet

The wallet is only accessible from the backend. All keys are encrypted with a random master password that is stored in an SQLite3 database in its AES encrypted form. Each private key is encrypted with the master password using BIP32 and stored in a SQLite3 database. The wallet will make backups of the SQLite3 database every week and keep several weeks of backup.

Todos

  • Transfer of funds
  • PowerUp, PowerDown
  • Trading
  • Account Administration (changing keys etc)
  • Allow to attach JSON object to posts
  • Secure socket.io with a password
  • layout and style improvements

Contributions

Currently, we are looking for the bravest of the bravest to help us test what is already there and give

  • bug reports
  • improvement proposals
  • feature request

Please use the github issue tracker to make it easier for us to remember all the feedback.

Important Note

piston.web is alpha software. For that reason, you need to expect it to break at any time. Use at your own risk.

Update 1

I'd like to clarify that this GUI is not meant to replace steemit.com or be used as a hosted, public site. It rather offers a personal, localhost-only page that you can use to access your wallet. Exposing the piston.web to a publicly accessible port is not recommended!

Update 2

I fixed the sqlite3.OperationalError: unable to open database file error earlier today so that people can actually take a look.

Update 3

More short-term fixes for the weekend-testers:

* [2016-07-23][bf3dae5] | [setup] make sure the user uses python3
* [2016-07-23][c31eec7] | [web] highlight own posts
* [2016-07-23][03e0d2f] | [web] fix reply identifier not in the form
H2
H3
H4
3 columns
2 columns
1 column
395 Comments