:: [Libbitcoin] comparison of sx OFFLI…
Top Page
Delete this message
Reply to this message
Author: Thomas Hartman
Date:  
To: libbitcoin@lists.dyne.org
Subject: [Libbitcoin] comparison of sx OFFLINE TRANSACTIONS to functionality in satoshi wallet jsonrpc for raw transactions
This is mostly just to state some observations.

sx has:

OFFLINE TRANSACTIONS
   SCRIPTING
        mktx                       Create an unsigned tx.
        rawscript                  Create the raw hex representation
from a script.
        set-input                  Set a transaction input.
        showscript                 Show the details of a raw script.
        showtx                     Show the details of a transaction.
        sign-input                 Sign a transaction input.
        unwrap                     Validates checksum and recovers
version byte and original data from hexstring.
        validsig                   Validate a transaction input's signature.
        wrap                       Adds version byte and checksum to hexstring.


I spent some time comparing this with
https://en.bitcoin.it/wiki/Raw_Transactions

and came to the following conclusion.

The important functionality offered by sx and not satoshi is:

-- rawscript
-- validsig

The functionality offered by satoshi and not sx is:

-- better signing.
-- consistent json rpc

The satoshi funcionality for signing is far superior to sx, and
encompasses everything that sx has.

In particular, iiuc, satoshi does not require wallet.dat file for
signing, privkeys can all be passed on command line. (Need to verity
this, but it seems to me from reading docs.) So, you can use satoshi
raw_transactions functionality as drop in lightweight replacement for
sx, and this makes a lot of sense particularly for signing.

Possible action items suggested by above observation:

-- Drop all functions except rawscript and validsig, and point to
bitcoind rpc for the remaining functionality. This is especially
attractive if bitcoind ca run headless (that is, without blockchain).
Not sure what the status is on headless, but I think it's either here
already or coming soon.

If that's too drastic, a compromise might be to just add pointers to
equivalent bitcoind functionality in help. This is especially
important for signing transactions. Signing is really cumbersome in
sx.

-- Suggest to bitcoind dev team to add rawscript and validsig
functionality. This would make it easy to build "interesting" wallets
on top of bitcoin, just as there is an embryonic scene building
wallets on top of sx.

I have been thinking a lot about "minimal viable wallet building
block" schemes, in conjunction with sx. I hope to have more say about
this soon.

SX is almost a minimal viable wallet, but it doesn't have key
management and signing is painful.

Satoshi is too "rich" of a wallet, and forces its notion of accounts
(groups of addresses) on to anyone that wants to build on top.

I am thinking there is a sweet space somewhere between sx (too lean)
and satoshi (too fat).

Perhaps I will have more to say about this soon.