Bitcoin Forum
November 13, 2024, 07:11:15 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Wallet RFC 1001  (Read 1343 times)
tuheeden (OP)
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
August 02, 2013, 07:39:13 PM
Last edit: August 05, 2013, 01:27:06 PM by tuheeden
 #1

After using a multitude of wallets, and being disappointed by almost all of them, I thought that perhaps it would be handy to have an "RFC" or some outline in which to rate them (rating matrix and scoring to follow soon).

Anyhow, here are the things I think should be in all crypto wallets.

All constructive comments are welcomed.

LINK FOR EDITING TABLE: http://socialcompare.com/en/w/crypto-wallets-1vfyr88k#


-------------------
RFC 1001
“Bitcoin Wallet Functionality”, July 2013

Abstract
For the practical use of wallets amount the multitude of operating systems and devices, a standardized list of features and functionality is necessary. The document contains a minimum set of features and functionality that all developers should include.

Table of Contents

DATABASE should prefer SQLITE? LevelDB..

Digital Currencies Supported
•   Bitcoin
•   LiteCoin
•   PPCoin

Denominations
•   Bitcoin (Btc, mBtc, uBtc)
•   Local Currency (USD, EUR, etc)
•   International Currency (JPY, CAD, etc)

Startup Methods
•   Full Blockchain (Must disclose possible bytes of data and length of time)
•   Peer chain only (multibit)
•   3rd party blockchain servers

Safety and Security
•   Encryption of Wallet (minimum requirement)
•   Backup option - online service, recoverable
•   Backup option - online service (file only, no recovery)
•   Backup option - individual key
•   Backup option - all keys, whole wallet
•   Export to cold storage
•   Change Password
•   Rescan Database

Wallet Portability
•   Export private keys
•   Import private keys
•   Print BitBills (or similar)

Input Methods
•   Address from Clipboard
•   QR Scan Address
•   QR Scan address and amount
•   Generate New Address
•   Manual Input
•   Private Key
•   2 of 3 transaction

Output Options
o   Copy to Clipboard
o   Display QR Code
o   Display Key
o   2 of 3 transaction
o   Display QR code with amount requested
o   Full control of sending (Choose Sending addresses)

Address Book
o   Add to address book from transactions page
o   Add manually (using an input method)

Display Options
o   Current Exchange Rates
o   Number of Confirmations
o   Blockchain link

Operating Systems
o   Windows PC
o   Mac
o   GNU/Linux
o   Mobile – Android
o   Mobile – iPhone store
o   Mobile – iPhone jailbreak
o   Mobile – Microsoft Phone
o   Mobile - Blackberry

Utilities
o   Rescan wallet
o   Recalc Blockchain??

•   Help
Appendix

References

Acknowledgements

Author
gbl08ma
Sr. Member
****
Offline Offline

Activity: 306
Merit: 250


Donations: http://tny.im/nx


View Profile WWW
August 02, 2013, 08:32:31 PM
 #2

Just one thing... "PC" is definitely not a OS name and "Mac" usually refers to the hardware by Apple. "Microsoft" is not a mobile OS name either.
I think you meant "Windows, Mac OS X and GNU/Linux" in place of "PC" and "Mac", and "Mobile - Windows Phone/Windows Mobile[dead]" in place of "Mobile - Microsoft". Just thought that if you want to take this as a serious thing, it's better to pay attention to detail and be precise.

And as gweedo said, sqlite is definitely not a good choice if they are going to hold a big amount of transactions (much less the whole blockchain).

bg002h
Donator
Legendary
*
Offline Offline

Activity: 1466
Merit: 1048


I outlived my lifetime membership:)


View Profile WWW
August 02, 2013, 09:23:38 PM
 #3

OP -- good points. I'd add to be sure to make it work best for mobile platforms (who wants a computer anymore these days anyway? The days of the computer are numbered).

Hardforks aren't that hard. It’s getting others to use them that's hard.
1GCDzqmX2Cf513E8NeThNHxiYEivU1Chhe
tuheeden (OP)
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
August 03, 2013, 01:15:31 AM
 #4

As long as LevelDB supports all of the platforms and performs better, then all is good.

My reasoning behind SQLite (only for wallets, not the blockchain) is that is supports native SQL syntax, has many DB tools, is portable between platforms, supports almost every programming language and supports compression and encryption. Performance when under 1Gb in size seems to be excellent and it is widely deployed (like Adobe, Skype, Dropbox and many others).

I updated the OS list.
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
August 03, 2013, 01:36:12 AM
 #5

Could we have something like : Full control on sending and change address(es), too, please ? I'd really like that in an official client.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
August 03, 2013, 01:39:40 AM
 #6

Could we have something like : Full control on sending and change address(es), too, please ? I'd really like that in an official client.

Try armory, it has both those features.

Does that mean you don't wan't those features to make it in RFC 1001 ?

Edit : OP, please also add a feature to recompute balance from blockchain, as QT is (or was, at least for me) unable to do so, even with the rescan arg.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
August 03, 2013, 02:07:28 AM
 #7

I understand user-friendly is more than needed (even the current official client if WAY too inaccessible for most people), but I'd also like to have full control on my transactions, without having to issue raw ones myself, and an accurate balance report would be nice, too.

I won't be using anything than the official client, for safety (and time) reasons, but I'd still like it to offer those features in a more user-friendly way.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
gweedo
Legendary
*
Offline Offline

Activity: 1498
Merit: 1000


View Profile
August 03, 2013, 02:11:45 AM
 #8

I understand user-friendly is more than needed (even the current official client if WAY too inaccessible for most people), but I'd also like to have full control on my transactions, without having to issue raw ones myself, and an accurate balance report would be nice, too.

I won't be using anything than the official client, for safety (and time) reasons, but I'd still like it to offer those features in a more user-friendly way.

Try convincing Gavin your only chance. The developer of Armory is highly respected in the crypto field and in bitcoins, I trust him even more than the core dev team. Plus his code is open sourced.
tuheeden (OP)
Newbie
*
Offline Offline

Activity: 41
Merit: 0



View Profile
August 03, 2013, 02:33:12 PM
 #9

Updated list with control of sending addresses...

This list is NOT really for the BitcoinQT client.

What I have coming next is a matrix with a scoring system to be able to compare the clients that are currently out there, using this criteria.

Really what I hope to accomplish is to provide a list of features that existing and new wallets could work from.

Keep the great input coming.
Kouye
Sr. Member
****
Offline Offline

Activity: 336
Merit: 250


Cuddling, censored, unicorn-shaped troll.


View Profile
August 03, 2013, 02:44:21 PM
 #10

Thanks, change address should also be possibly controlled, if one wants to, imho.
And the balance accuracy is a real issue, today, in QT.

Try the following wit QT wallet:

- Go offline
- Send a small amount to another wallet you own
- QT balance will decrease accordingly
- Exit QT
- Use pywallet to delete the transaction you just issued from your wallet.dat
- Go back online
- Restart QT wallet with a rescan switch
- Cry, seeing your balance is still off the amount you sent to your other wallet, and said wallet - obviously - never received any coin, since you were offline.

Of course, the coins are not lost, and you can recover them by exporting/importing the private key, or crafting raw tx. But it really seems important to me that a wallet should be able to recompute your balance every time you ask for it - and you're online.

[OVER] RIDDLES 2nd edition --- this was claimed. Look out for 3rd edition!
I won't ever ask for a loan nor offer any escrow service. If I do, please consider my account as hacked.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!