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