Thanks @saeveritt for the graphic design. Still to be implemented in the demo.
I’m working on a project codenamed “PeerKeeper”.
It’s a codename as suggestions for better names are welcome!
https://hrobeers.github.io/peerkeeper/
Please tip here to fund the project:
https://peer4commit.com/projects/179
Test page to test your browser:
https://hrobeers.github.io/peerkeeper/test/
#PeerKeeper:
- A thin client PPC wallet that is able to mint in browser.
- Creates addresses using BIP32 HD wallets, based on a single locked key that can be bookmarked.
- Stores no unencrypted private keys on disk.
- Private keys are never communicated over the internet.
- Includes a PeerAssets implementation.
- Values convention over configuration. Coin control is done in savings accounts out of the box.
- Savings accounts use hardened keys (see BIP32) for extra security.
- Checking accounts will never mint and therefore never lock your funds.
- Can run as a chrome/firefox app.
- Can run as a desktop app using electron http://electron.atom.io/.
- Can run from a local folder.
- Can be ported to native iOS and Android using react-native https://facebook.github.io/react-native/.
- Uses standard block explorers for all functionality except for getting stake modifiers.
- Should never hard fork from the reference client.
- Can mint on your phone!
I’m putting it out here early just to make you warm for the project, and give an idea how it will work.
Any feedback is welcome but keep in mind that this is just an interactive mock lacking features tooltips, …
###Update 4th of November 2016
Work on the PeerKeeper backend has started.
###Update 28th of August 2016
- You can now export your private keys, which means that you can start using the generated addresses in other clients.
Keep in mind that PeerKeeper still doesn’t fetch real balance data, that’s for next iteration.
- Firefox compatibility is fixed. (it was caused by this issue: https://github.com/feross/buffer/issues/131
- BIP44 & SLIP44 key generation is implemented and tested. Meaning that from now on, the addresses generated using a rootkey and password combination will never change.
In progress:
- Fetching address balances from block explorer
- Implementing send transactions
In short, we’re getting close to a functional wallet.
###Update 28th of July 2016
No demo update but an announcement:
Key derivation pattern will change in next demo to follow the recommendations in:
BIP44: https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
SLIP44: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
###Update 15th of July 2016
You can now print your credit card sized key card, which contains your locked key.
This way you can take your locked key with you in your real wallet!
I’m now working on printing your keys to paper, just like the paper wallets.
###Update 4th of July 2016
- QR code scanning support in Send modal.
- QR code displayed in Receive modal.
- An empty address is shown as first checking address. This one can be used as ‘new’ address.
- Per address Send/Receive support.
- Number of transactions displayed.
###Update 29th of June 2016
- Overview & Checking screen redesigned
- Transaction count displayed
- Send & Receive modals implemented
###Update 23rd of June 2016
Updates:
- Demo is now hosted on github: http://hrobeers.github.io/peerkeeper/
- Modals are added to handle button clicks in the checkings screen.
- Password checksum logic improved, keys generated using previous demos don’t work anymore.
In progress:
- Implementation of payment modals.
- Redesign of Overview screen as it should be possible to execute standard payments from that screen and the dedicated screens are for fine grained account control.
- @saeveritt is working on implementing the new styling in css.
###Update 2nd of June 2016
- The key generation is implemented.
- Visit http://hrobeers.be/tmp/peerkeeper/ to generate your key locked with a password.
- Using the same key/password combination will always generate the same addresses in your checkings panel.
- You can bookmark the URL with your key encoded. e.g. http://hrobeers.be/tmp/peerkeeper/?key=8404445036aa5f5facd78852929ec759b0c751f311329b1928db2f4ad5e24484
Unlock this key using password “hello” and will give you the following addresses in the checkings panel
- PQ1rH7HS7jYqWBG…
- PNuy9UEArXeqBEZ…
- PUzziR4qrjkJJ5o…
- PTU5pd3iifkDsPR…
- P8teVxCrRTyoNQQ…
- PDukDTQsUebuB4…
You can have keys without password checksum encoded by having the first byte of your key < 128 e.g. http://hrobeers.be/tmp/peerkeeper/?key=0404445036aa5f5facd78852929ec759b0c751f311329b1928db2f4ad5e24484
This way you can use the key with any password and all passwords generate a different hdwallet.
This feature is supported for the paranoid people.
- The first bytes of the key encodes the logN of scrypt rounds so that the hashing power needed to unlock can be increased over time. e.g. 0x84 -> 128|4 meaning checksum bit set and 2^4 scrypt rounds. This will be raised once a progress bar is implemented, but you can raise it manually for testing.
- A test page is created that runs the unit tests in your browser to check compatibility and proper functioning: http://hrobeers.be/tmp/peerkeeper/test/
More to come!
#FAQ:
Where is the source code?
- The code will be released before a functional client is released!
- Right now, I’m still working on a framework so that other developers can easily contribute plug-ins.
Minting in browser, how is that possible?
- To be able to mint, stake the modifiers and blocks need to be calculated before they can be minted.
- The blocks and stake modifiers will be exposed through a modified block explorer.
- This means that a centralization will happen similar to bitcoin mining pools.
- The idea is that multiple stake modifier and block providers will register their services through some kind of PeerAsset, wich will counter centralization.
Why are you doing this?
Multiple reasons:
- I’m learing React https://facebook.github.io/react/ and Livescript (http://livescript.net/).
- I believe that Peercoin is a sustainable coin that can survive the crypto bubble.
- For PeerAssets to succeed, I believe it needs a simple to use wallet.
- I’m working on a DAO that let’s people trade simulations (of a specific type) where the DAO resolves conflict in case of disagreement. I need PeerAssets and a simple and extendable wallet for this.
Who are you, what is your track record?
- I’m a thermo-mechanical engineer that got interested in software development.
- I work as a technical software developer since 2011.
- I contributed to several open-source project including ppcoin (fixed the unit tests): https://github.com/hrobeers
- I’m the creator/owner/chief whatever of finFoil: http://finfoil.io/