Bitcoin Forum
November 19, 2024, 03:36:34 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 [58] 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 ... 166 »
  Print  
Author Topic: MasterCoin: New Protocol Layer Starting From “The Exodus Address”  (Read 448462 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 07:35:53 AM
 #1141

Hmm that should work! What actually might work better is installing the actual wallet app I made; it dumps the transaction I create in a format that bitcoind's decoderawtransaction can decode. That way you can compare the transactions in the same format (Bitcoin ruby dumps it in a different ruby format). Check the log file in ~/.mastercoin-wallet/debug.log and look for the hex string there after the json dump. You might want to comment out the line that actually relays the transaction if you don't want to actually send anything yet.

Thanks Tachikoma, I've spun up your wallet but again I'm really not having much joy with ruby - wallet bombs with an SSL error (note this is another fresh ruby install, this time trying on Windows):

Code:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.9.0-x86-mingw32/lib/ffi/library.rb:123:in `block (LoadError): Could not open library 'ssl': The specified module could not be found.
Could not open library 'ssl.dll': The specified module could not be found.
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.9.0-x86-mingw32/lib/ffi/library.rb:90:in `map'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.9.0-x86-mingw32/lib/ffi/library.rb:90:in `ffi_lib'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/ffi/openssl.rb:10:in `<module:OpenSSL_EC>'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/ffi/openssl.rb:8:in `<module:Bitcoin>'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/ffi/openssl.rb:7:in `<top (required)>'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/key.rb:60:in `pub'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/key.rb:75:in `hash160'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/bitcoin-ruby-0.0.1/lib/bitcoin/key.rb:80:in `addr'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mastercoin-wallet-0.0.2/lib/mastercoin-wallet/gui/first_run_window.rb:82:in `on_private_key_input_textChanged'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0-x86-mingw32/lib/Qt/qtruby4.rb:880:in `qt_metacall'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0-x86-mingw32/lib/Qt/qtruby4.rb:880:in `method_missing'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0-x86-mingw32/lib/Qt/qtruby4.rb:880:in `exec'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/mastercoin-wallet-0.0.2/bin/mastercoin-wallet:15:in `<top (required)>'
        from C:/Ruby192/bin/mastercoin-wallet:19:in `load'
        from C:/Ruby192/bin/mastercoin-wallet:19:in `<main>'
FYI, I tried a 'gem install ssl' as a shot in the dark - it installed an SSL gem but same error.  I can't see an ssl.dll anywhere in the /ruby192 tree so again likely environment related.  Perhaps if I can find some time I'll try and figure out what's up here.  

I will say however that Mastercoin-explorer picks up my multisigs as valid which is good, seems we have compatible implementations Smiley

Actually all my multisig sequences start with 1 because otherwise I couldn't create valid looking ECDSA points. Could you check your implementation if you can get that to work? If so we should probably switch to 0.

I didn't get very far using 0 and stopped testing fairly quickly, my implementation also starts multisig sequences with 1 these days.  

I have been doing the latter; making sure the change always goes back to the sending address. It makes sense since you need funds to keep making transactions and it makes the parsing much easier. By forcing such rules we also force users to start using real clients with multisig support instead of using the parasitic address version.

The most recent versions of my code also do away with requiring the output amounts to be the same, both in original and multisig flavours.  Now the forums are back up I'm going to be doing some releases so I'll include some info about how I'm handling transaction processing rules.  In a nutshell though for multisig if there is a 4th output for change it must be the same as the sending address otherwise change/destination addresses are ambiguous and I throw the tx out.

how about having only 2 outputs:
  • dust limit to 1EXoDus
  • All the rest to the BIP11 that includes [changeAddr, (modified)recipientAddr, dataAddr]
This is not very different from what we have now. We just drop 2 extra outputs (to recipientAddr and to changeAddr).
In order to avoid spending of the tx by the recipient address, we would modify it lightly (e.g. by changing the first 0 to 1), so it is still readable, but it can't sign the tx. By using this method we avoid the need to differ between the outputs (there are only one simple and one multisig).

I think Tachikoma may have already alluded to this but we don't have the recipient address public key so can't include it as a signatory (thus the concern over the recipient redeeming the multisig shouldn't be an issue).  Tachikoma has also addressed the address>key encoding byte requirement so I won't rehash that here Smiley

I also played with a version that rotates the first 0 to the end, but miners seem to take the tx as is.
Can you please show me on the satoshi code (and better on the protocol) where the list of public keys in BIP11 are checked to be valid ECDSA points?

Satoshi code and the protocol aren't the critical issue here - the miners are.  Uncompressed public keys would be great I agree, but where possible we need to ensure best ability to relay & include transactions in blocks.  It's worth mentioning that a lot of blocks are mined by pools, and some of the bigger pools run custom patches on bitcoind (and some use an entirely different software stack completely) which should encourage us to stay as close to 'vanilla' bitcoin transactions as possible (to minimize the risk of transactions being left out by miners).

So, for now, let's use Tachikoma's method. Once we are firmly established and/or the core bitcoin devs become friendly to our cause, we should switch to grazcoin's implementation, or at least support it.

I'm supportive of compressed keys for now too (not to detract from Grazcoin's ideas, we can certainly review further but in the interests of keeping momentum and removing the concerns about ECDSA point validity I think sticking with compressed is the clearest path).

Zathras - I haven't heard anything from you in awhile. What have you been up to?

I'm still here, still doing things Smiley  Noticed the forums came back up yesterday.  Progress update & a couple of code releases incoming over the next few hours (oh and I'll write a brief summary as you requested before the forums went down).

Thanks all!

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
maxmint
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500



View Profile
October 09, 2013, 08:07:16 AM
 #1142

Yup! Future contests will be feature-driven. Basically, once we reach a milestone, the project will pay anybody who helped us get there, in proportion to the size of their contribution. As before there will be a big focus on collaboration, and probably an explicit code review requirement in the acceptance criteria.

We've got to get the distributed exchange working before smart property will make sense though.

I think we have to start working on the smart property feature right now. Share issuers are running out of alternatives and are in need of a new and robust system.

Here's what I'd suggest:
- Start a new posting to collect ideas and get more people involved in smart property.
- Contact share issuers and ask them if they would be interested in this (one or two of the bigger ones could bring huge momentum). Then start working with them and build a system that fills their needs.

I know we should not jump the gun on this, but I really think that time is of essence here.

My PGP-Key: 462D02D8
Verify my messages using keybase: https://keybase.io/maxmint
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 09:03:06 AM
 #1143

Masterchest Library

Initial alpha release of the Masterchest library.  

This library provides a number of Mastercoin related functions in a .NET DLL for easy referencing in a project.  This library is used by both my wallet and the masterchest engine (the blockchain scanner behind masterchest.info).

With thanks to:  BouncyCastle, Newtonsoft, Tachikoma

Requirements: .NET 4, bitcoind/qt RPC server with transaction indexing enabled (disabled by default in 0.8+, add txindex=1 in bitcoin.conf and then start with -reindex to readd transaction index).

Disclaimer:  Please use it as you see fit, but remember this is very, very alpha.  You should not risk anything other than a small amount of coins (bitcoin or mastercoin) when testing.  To put some context around the risks involved - consider that as we build and broadcast transactions from scratch, if we grab a 100BTC input and miscalculate the change, then a miner somewhere is going to be very happy and you are going to lose out.  I'm encouraging any and all testers to spin up a VM, create a new bitcoin wallet, depsoit a fraction of a bitcoin to cover fees and then use Masterchest software with this new bitcoin wallet.

I'm going to be quite brief for now as I have a lot to get through this evening, please feel free to ask any questions and I'll be happy to answer them Smiley A quick readme I threw together:

Firstly import Masterchest:
Code:
Imports Masterchest.Masterchest

Create a new instance of the Masterchest lib:
Code:
Dim mlib As New Masterchest.mlib

Create a bitcoind/qt connection:
Code:
Dim bitcoin_con as bitcoinrpcconnection
bitcoinrpcserver = "127.0.0.1"
bitcoinrpcport = 8332
bitcoinrpcuser = "rpcuser"
bitcoinrpcpassword = "rpcpassword"

Retrieve a block hash:
Code:
Dim hash As blockhash = mlib.getblockhash(bitcoin_con, blocknumber)

Retrieve a block:
Code:
Dim gotblock As Block = mlib.getblock(bitcoin_con, blockhash)

Retrieve the block currently being mined:
Code:
Dim result as blocktemplate = mlib.getblocktemplate(bitcoin_con)

Create an array of transaction IDs in a block:
Code:
Dim txarray() As String = gotblock.result.tx.ToArray

Loop through transactions in a block:
Code:
For Each tx As String In gotblock.result.tx
'do something
Next

Retrieve a transaction:
Code:
Dim txn As txn = mlib.gettransaction(bitcoin_con, transactionid)
MsgBox(txn.result.time)

Check if a transaction looks like it cointains a Mastercoin transaction:
Code:
Dim ismastercoin As Boolean
ismastercoin = mlib.ismastercointx(bitcoin_con, transactionid)
MsgBox(ismastercoin)

Decode a Mastercoin transaction (original or multisig):
Code:
Dim mtx As txn = mlib.gettransaction(bitcoin_con, transactionid)

'before Exodus cutoff so check for generate
Dim generatemastercointxinfo As mastercointx
If mtx.result.blocktime < 1377993875 Then generatemastercointxinfo = mlib.getmastercointransaction(bitcoin_con, transactionid, "generate")
'check for simple send
Dim sendmastercointxinfo As mastercointx = mlib.getmastercointransaction(bitcoin_con, transactionid, "send")

If generatemastercointxinfo IsNot Nothing Then
MsgBox(generatemastercointxinfo.fromadd & generatemastercointxinfo.toadd & generatemastercointxinfo.type & generatemastercointxinfo.curtype & generatemastercointxinfo.value)
End If
If sendmastercointxinfo IsNot Nothing Then
MsgBox(sendmastercointxinfo.fromadd &sendmastercointxinfo.toadd & sendmastercointxinfo.type & sendmastercointxinfo.curtype & sendmastercointxinfo.value
End If

Encode a Mastercoin transaction (multisig only):
Code:
Dim rawtx As String = mlib.encodetx(bitcoin_con, fromadd, toadd, curtype, amountlong)
'send rawtx through signing and broadcast
   
Compiled DLL & Source : https://github.com/zathras-crypto/masterchest-library

Feedback/questions always of course welcome Smiley


Smart Property & Distributed Exchange: Master Protocol for Bitcoin
Tachikoma
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000



View Profile WWW
October 09, 2013, 09:06:24 AM
 #1144

Cool, congrats to the release!

I don't have access to windows. Is there a way to try this out anyway?

Electrum: the convenience of a web wallet, without the risks | Bytesized Seedboxes BTC/LTC supported
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 09:17:53 AM
 #1145

Cool, congrats to the release!

I don't have access to windows. Is there a way to try this out anyway?
Thanks Smiley

It's a library so really wouldn't be much use outside of developing mastercoin stuff in .NET.  I'm trying to get some other Masterchest stuff out tonight too though (if I can stop interrupting for work - pfft SAN upgrades & the real world).  Most of my contributions are going to be Windows (at least to begin with), though I do plan to test the wallet against wine on some popular distros and hopefully code around any incompatibilities I pickup.  Alternatively there's always virtualization and an eval version of Windows if you're so inclined Smiley


Smart Property & Distributed Exchange: Master Protocol for Bitcoin
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 09:45:43 AM
Last edit: October 09, 2013, 10:28:48 AM by zathras
 #1146

I also wanted to try and summarize the transaction processing rules the various Masterchest software uses.

Note the specification is not final and these rules are subject to change with no notice.

* All outputs must be in the same transaction, eg via sendmany

For an 'original' spec transaction:
* Output amounts are not evaluated and do not need to be the same, as long as they are above the dust threshold any value should be fine
* In the case of 3 outputs data and recipient addresses are evaluated by sequence number.  
* If a 4th output is present it is considered change if its sequence number is not in step with data & recipient sequence, otherwise the transaction is considered ambiguous (invalid).

For a multisig transaction:
* Output amounts are not evaluated and do not need to be the same, as long as they are above the dust threshold any value should be fine (note dust threshold is higher for multisig outputs)
* In the case of 3 outputs, multisig and exodus are easy to identify so the remaining address is the recipient address.
* If a 4th output is present it is considered change if its address matches the sending address, otherwise the transaction is considered ambiguous (invalid).

Again feedback more than welcome and my ability to articulate in a few sentences what I've coded may not be all that great Wink

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 10:14:28 AM
 #1147

Masterchest Engine

Initial alpha release of the Masterchest engine.  

This is a blockchain scanner that will connect to a bitcoind/qt RPC server, scan the blockchain and decode any mastercoin transactions it finds into a database.
It will then run through the database and process the transactions assigning a valid/invalid status to each and calculating the balance for each address accordingly.

Masterchest.info uses this engine to get data on mastercoin transactions.

With thanks to:  BouncyCastle, Newtonsoft, Tachikoma

Requirements: .NET 4, SQL server, bitcoind/qt RPC server with transaction indexing enabled (disabled by default in 0.8+, add txindex=1 in bitcoin.conf and then start with -reindex to readd transaction index).

Disclaimer:  Please use it as you see fit, but remember this is very, very alpha.  You should not risk anything other than a small amount of coins (bitcoin or mastercoin) when testing.  To put some context around the risks involved - consider that as we build and broadcast transactions from scratch, if we grab a 100BTC input and miscalculate the change, then a miner somewhere is going to be very happy and you are going to lose out.  I'm encouraging any and all testers to spin up a VM, create a new bitcoin wallet, depsoit a fraction of a bitcoin to cover fees and then use Masterchest software with this new bitcoin wallet.

Please feel free to ask any questions and I'll be happy to answer them Smiley A quick readme I threw together:

Quote
This readme will be updated as time allows.  A quick run down of usage is as follows:

When running the engine will connect to an SQL server as specified and scan the blockchain for mastercoin transactions, adding them to the database and then processing them.

An SQL instance is required (can be easily rewritten to use sqlce).  Create a database with the following tables (can add create in code when I have time):

balances:
ADDRESS NVARCHAR(100) NOT NULL
CBALANCE BIGINT NOT NULL
CBALANCET BIGINT NOT NULL

processedblocks:
BLOCKNUM INT NOT NULL
BLOCKTIME BIGINT NOT NULL

transactions:
TXID NVARCHAR(100) NOT NULL
FROMADD NVARCHAR(100) NOT NULL
TOADD NVARCHAR(100) NOT NULL
VALUE BIGINT NOT NULL
TYPE NVARCHAR(100) NOT NULL
BLOCKTIME BIGINT NOT NULL
BLOCKNUM INT NOT NULL
VALID BIT NOT NULL
CURTYPE INT NOT NULL
ID INT NOT NULL (identity/auto-increment)

transactions_processed:
TXID NVARCHAR(100) NOT NULL
FROMADD NVARCHAR(100) NOT NULL
TOADD NVARCHAR(100) NOT NULL
VALUE BIGINT NOT NULL
TYPE NVARCHAR(100) NOT NULL
BLOCKTIME BIGINT NOT NULL
BLOCKNUM INT NOT NULL
VALID BIT NOT NULL
CURTYPE INT NOT NULL
ID INT NOT NULL (identity/auto-increment)

Then run masterchest_engine.exe with the following options:

-sqlserv=  'name of sql instance
-sqldata=  'name of database
-sqluser=  'sql username
-sqlpass=  'sql pass
-bitcoinrpcserv=  'self explanatory
-bitcoinrpcport=
-bitcoinrpcuser=
-bitcoinrpcpass=

For example you may run it is as a scheduled task every 5 minutes to continually update the database with transactions.
User interfaces for the information can then be built and transactions queried from the database easily, for example:

select * from transactions_processed where txid='txid'
select cbalance from balances where address='address'

Compiled binary and source : https://github.com/zathras-crypto/masterchest-engine/

Feedback/questions always of course welcome Smiley

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 11:52:37 AM
 #1148

Masterchest Wallet

Initial alpha release of the Masterchest desktop wallet.  

This is the first alpha release of the Masterchest desktop wallet.  Expect it to be littered with bugs, it's a 0.0.1 release.  It'll be quicker to find them if others participate in testing, so please post bad behaviour, errors, failures or crashes etc.

This is a testing release only and is not fit for real usage - do not under any circumstances plug it into a bitcoin wallet with any sizable amount of bitcoins/mastercoins.  Test only with an almost empty wallet.

With thanks to:  BouncyCastle, Newtonsoft, Tachikoma

Requirements: .NET 4, bitcoind/qt RPC server with transaction indexing enabled (disabled by default in 0.8+, add txindex=1 in bitcoin.conf and then start with -reindex to readd transaction index).

Disclaimer:  Please use it as you see fit, but remember this is very, very alpha.  You should not risk anything other than a small amount of coins (bitcoin or mastercoin) when testing.  To put some context around the risks involved - consider that as we build and broadcast transactions from scratch, if we grab a 100BTC input and miscalculate the change, then a miner somewhere is going to be very happy and you are going to lose out.  I'm encouraging any and all testers to spin up a VM, create a new bitcoin wallet, depsoit a fraction of a bitcoin to cover fees and then use Masterchest software with this new bitcoin wallet.

Usage I think is fairly self explanatory; configure the connection to bitcoind/qt and let it scan the blockchain.  It will automatically add addresses from your bitcoin wallet and enumerate their balances.  Sends should be debugged first and only signed/sent once you are sure you have checked the transaction and know what you are doing.  The only time your bitcoin wallet passphrase is required is to sign&send a transaction.

Transactions not in a block but detected from getblocktemplate (ie waiting to be included in a block) are interpreted as unconfirmed.

I have also included the option of a preseeded database which will reduce the amount of blocks needed to scan for transactions.  

Please feel free to ask any questions and I'll be happy to answer them Smiley

Some screenshots (@50%):




Hint: This runs contained in it's own folder (ensure you have write perms!).  If things go wrong just unzip again and start over (no keys are stored in this wallet, bitcoind/qt does the signing).  You can also add gettingstarted# to wallet.cfg to trigger the initial setup again after first run.

I cannot stress this strongly enough; this is a testing release only and is not fit for real usage - do not under any circumstances plug it into a bitcoin wallet with any sizable amount of bitcoins/mastercoins.  Test only with an almost empty wallet.

Compiled binary and source : https://github.com/zathras-crypto/masterchest-wallet

Feedback/questions always of course welcome Smiley

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 12:07:23 PM
 #1149

And that's all folks - time for a bit of sleep, if anyone is thinking of trying any of this out I'll be back tomorrow Smiley

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
Tachikoma
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000



View Profile WWW
October 09, 2013, 12:08:28 PM
 #1150

Before you go; it looks like https://github.com/zathras-crypto/masterchest-wallet has no content. At least for me!

Electrum: the convenience of a web wallet, without the risks | Bytesized Seedboxes BTC/LTC supported
maxmint
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500



View Profile
October 09, 2013, 12:12:33 PM
 #1151

Before you go; it looks like https://github.com/zathras-crypto/masterchest-wallet has no content. At least for me!

Yes, nothing to download for me too Sad
Would love to give this a test run!

My PGP-Key: 462D02D8
Verify my messages using keybase: https://keybase.io/maxmint
zathras
Sr. Member
****
Offline Offline

Activity: 266
Merit: 250



View Profile
October 09, 2013, 12:22:12 PM
 #1152

Before you go; it looks like https://github.com/zathras-crypto/masterchest-wallet has no content. At least for me!
Git wasn't synced - should be all sorted now.  Please be careful and test with new wallets Smiley

Smart Property & Distributed Exchange: Master Protocol for Bitcoin
Bitoy
Sr. Member
****
Offline Offline

Activity: 449
Merit: 250


View Profile
October 09, 2013, 01:06:42 PM
 #1153

Before you go; it looks like https://github.com/zathras-crypto/masterchest-wallet has no content. At least for me!
Git wasn't synced - should be all sorted now.  Please be careful and test with new wallets Smiley


Can masterchest  be configured to use blockchain wallet?   
Tachikoma
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000



View Profile WWW
October 09, 2013, 01:09:07 PM
 #1154

You can't connect it to a blockchain wallet directly. You can however export your blockchain wallet keys and put them into a normal bitcoind instance.

Electrum: the convenience of a web wallet, without the risks | Bytesized Seedboxes BTC/LTC supported
Tachikoma
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000



View Profile WWW
October 09, 2013, 01:22:50 PM
 #1155

So let's talk smart assets.

A few questions I had by reading the current specs.

Currently it looks like you don't have to spend any funds to create an asset. Wouldn't this indirectly mean that if I made a small script I could register all possible currency identifiers and break the system? Perhaps setting a required mining fee amount would fix this issue.

I expect most smart-properties to be some kind of dividend paying security. With his in mind it would be great if we could explicitly supply a bitcoin-address when using the "Purchasing a Currency Offered For Sale" method to buy shares, to keep it simple we could also define that when buying smart-properties the default dividend address is the Mastercoin address used for the payment.

 

Electrum: the convenience of a web wallet, without the risks | Bytesized Seedboxes BTC/LTC supported
Bitoy
Sr. Member
****
Offline Offline

Activity: 449
Merit: 250


View Profile
October 09, 2013, 01:28:41 PM
 #1156

You can't connect it to a blockchain wallet directly. You can however export your blockchain wallet keys and put them into a normal bitcoind instance.

Thanks.  Will test masterchest with bitcoind.  

(I was hoping to use masterchest with blockchain api in order to create a "lightweight" mastercoin wallet.)
HammerFist
Newbie
*
Offline Offline

Activity: 42
Merit: 0


View Profile
October 09, 2013, 02:58:35 PM
 #1157

Masterchest Engine
Initial alpha release of the Masterchest engine.  
Feedback/questions always of course welcome Smiley
100% Awesome!!!  Good job.
dacoinminster (OP)
Legendary
*
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
October 09, 2013, 03:56:46 PM
 #1158

Masterchest Wallet

Initial alpha release of the Masterchest desktop wallet.  

This is the first alpha release of the Masterchest desktop wallet.  Expect it to be littered with bugs, it's a 0.0.1 release.  It'll be quicker to find them if others participate in testing, so please post bad behaviour, errors, failures or crashes etc.

This is a testing release only and is not fit for real usage - do not under any circumstances plug it into a bitcoin wallet with any sizable amount of bitcoins/mastercoins.  Test only with an almost empty wallet.

With thanks to:  BouncyCastle, Newtonsoft, Tachikoma

Requirements: .NET 4, bitcoind/qt RPC server with transaction indexing enabled (disabled by default in 0.8+, add txindex=1 in bitcoin.conf and then start with -reindex to readd transaction index).

Disclaimer:  Please use it as you see fit, but remember this is very, very alpha.  You should not risk anything other than a small amount of coins (bitcoin or mastercoin) when testing.  To put some context around the risks involved - consider that as we build and broadcast transactions from scratch, if we grab a 100BTC input and miscalculate the change, then a miner somewhere is going to be very happy and you are going to lose out.  I'm encouraging any and all testers to spin up a VM, create a new bitcoin wallet, depsoit a fraction of a bitcoin to cover fees and then use Masterchest software with this new bitcoin wallet.

Usage I think is fairly self explanatory; configure the connection to bitcoind/qt and let it scan the blockchain.  It will automatically add addresses from your bitcoin wallet and enumerate their balances.  Sends should be debugged first and only signed/sent once you are sure you have checked the transaction and know what you are doing.  The only time your bitcoin wallet passphrase is required is to sign&send a transaction.

Transactions not in a block but detected from getblocktemplate (ie waiting to be included in a block) are interpreted as unconfirmed.

I have also included the option of a preseeded database which will reduce the amount of blocks needed to scan for transactions.  

Please feel free to ask any questions and I'll be happy to answer them Smiley

Some screenshots (@50%):




Hint: This runs contained in it's own folder (ensure you have write perms!).  If things go wrong just unzip again and start over (no keys are stored in this wallet, bitcoind/qt does the signing).  You can also add gettingstarted# to wallet.cfg to trigger the initial setup again after first run.

I cannot stress this strongly enough; this is a testing release only and is not fit for real usage - do not under any circumstances plug it into a bitcoin wallet with any sizable amount of bitcoins/mastercoins.  Test only with an almost empty wallet.

Compiled binary and source : https://github.com/zathras-crypto/masterchest-wallet

Feedback/questions always of course welcome Smiley

This. Looks. AWESOME!!

I'd like to take this opportunity to remind everyone that testing and code-reviewing count towards the contest! If you test, provide feedback, find bugs, do code reviews, include that in your final summary and I'll consider that when payout time comes Smiley

Speaking of payout time, it's getting close! In order to make sure we don't delay too much, please make sure you are ready on October 15th to post your final list of everything you did, and links to all the source (so everybody can see it all in one place). I will ask each of you to carefully consider the other contestants and tell me (privately) how you would distribute the money among them if you were not participating in the contest. Every time I think about the payout, I get nervous - hurt feelings seem inevitable, and I want to make sure I'm not solely responsible for those hurt feelings Smiley



dacoinminster (OP)
Legendary
*
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
October 09, 2013, 04:52:31 PM
 #1159

So let's talk smart assets.

A few questions I had by reading the current specs.

Currently it looks like you don't have to spend any funds to create an asset. Wouldn't this indirectly mean that if I made a small script I could register all possible currency identifiers and break the system? Perhaps setting a required mining fee amount would fix this issue.

I expect most smart-properties to be some kind of dividend paying security. With his in mind it would be great if we could explicitly supply a bitcoin-address when using the "Purchasing a Currency Offered For Sale" method to buy shares, to keep it simple we could also define that when buying smart-properties the default dividend address is the Mastercoin address used for the payment.

 

I agree that smart property is more important than distributed e-commerce (which would effectively make a distributed silk road). Note that I've previously mentioned that I plan to add a "pay dividend" command to the spec. I agree with Tachikoma that we ought to add some friction to creating smart properties. Rather than pay the fee in bitcoins to the miner, I think we should destroy a small number of MasterCoins (increasing their value).

How about we set the minimum fee to:
Property Name LengthMinimum Fee
15000 MSC
22000 MSC
31000 MSC
4500 MSC
5200 MSC
6100 MSC
750 MSC
820 MSC
910 MSC
105 MSC
112 MSC
121 MSC
130.5 MSC
140.2 MSC
150.1 MSC
160.05 MSC
170.02 MSC
180.01 MSC
. . . and so on . . .

In this way, most people will register "Quantum Miner Shares Class B" rather than "QM", but if someone wants to burn a lot of money on a short name, they can Smiley

This is just one way we could do it - if you guys have suggestions, I'd like to hear them. My main goal is to keep it as simple as possible without creating a single hard-coded value that we'll have to change later.

Incidentally, if two people DID register "QM", the second one would be displayed as "QM[2]". There's no enforcement that names must be unique - only currency identifiers, which are assigned in the order currencies and properties are created.

Tachikoma
Hero Member
*****
Offline Offline

Activity: 938
Merit: 1000



View Profile WWW
October 09, 2013, 04:55:19 PM
 #1160

I've setup a VM to play around with masterchest-wallet but I think I might be missing a dependencies:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

Code:
************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'
   at Masterchest_Wallet.Form1.SQLGetSingleVal(Object sqlquery)
   at Masterchest_Wallet.Form1.lnkwcont_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e)
   at System.Windows.Forms.LinkLabel.OnLinkClicked(LinkLabelLinkClickedEventArgs e)
   at System.Windows.Forms.LinkLabel.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Label.WndProc(Message& m)
   at System.Windows.Forms.LinkLabel.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].



************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18051 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Masterchest_Wallet
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Animazing/Documents/wallet/Masterchest_Wallet.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 11.0.50709.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18022 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18037 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18022 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
Masterchest
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Animazing/Documents/wallet/Masterchest.DLL
----------------------------------------
Microsoft.VisualBasic.PowerPacks.Vs
    Assembly Version: 10.0.0.0
    Win32 Version: 10.0.40219.1
    CodeBase: file:///C:/Users/Animazing/Documents/wallet/Microsoft.VisualBasic.PowerPacks.Vs.DLL
----------------------------------------
System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18058 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


Any idea what I need to install Zathras?

Electrum: the convenience of a web wallet, without the risks | Bytesized Seedboxes BTC/LTC supported
Pages: « 1 ... 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 [58] 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 ... 166 »
  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!