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
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