Search content
Sort by

Showing 20 of 392 results by zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 20/05/2014, 08:41:09 UTC
Hey all,

I'm going to close this topic now in line with the foundations' desire to have forum communication over at mastercointalk.org... See you over there! Smiley

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 12/05/2014, 01:33:38 UTC
Hey guys,

0.4 is up.  This includes SP support (display & send).

I'd like to take a moment to remind everyone that this is experimental alpha testing software and all use is at your own risk - please remember this if you're considering using it with anything other than small testing amounts.

Also, while I have you Smiley

0.4 will be the last Masterchest release of the wallet.  As of now the project is being handed over to the foundation and they will own the development and direction of future desktop wallet development.  Since I know the tendency for people to interpret differently is very prevalent in the Crypto space, I'd like to make a few things very clear Smiley as follows:

* I am not stopping development, nor am I stepping down in my role as RBB Developer for the foundation
* 0.4 is the last "Masterchest" release, but that does not mean last release period.  The foundation will of course be continuing the development of wallet software - perhaps my .NET wallet, perhaps something else.  Desktop wallet direction is a hotly discussed topic at the moment, but one thing we all agree on is a need for a consolidated direction - moving the wallet project to the foundation is a logical step in pursuit of this
* I will be continuing work on other Masterchest projects, most notably the Masterchest.info block explorer will continue to be actively developed
* I will be contributing to a consolidated wallet development effort, though not leading it, regardless of the direction chosen for development

With those points out the way (I would hate for this to be construed as negative), I just wanted to add a personal note; this project was launched as an idea, but an idea that needed software to turn it into something tangible and Masterchest was a rapid prototype to bridge that gap.  It's been a wonderful (if tiring!) journey but as we grow and evolve into something more mature, more organized and more focused the 'one-man-band' approach that is Zathras & Masterchest is of course not a long term scalable prospect (or good for the project) - but I'm extremely proud to have helped the project along in my own little way & look forward to contributing to a consolidated & shared development effort as we charge ever further ahead! Smiley

Download

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 20/04/2014, 01:48:49 UTC
Hey all,

0025 is available for download, corrects an issue where action byte is not enforced for case 0x02 where no previous sell exists (should be invalidated) and applies formula fix for rounding on purchase amounts.

Please update.

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 20/04/2014, 01:48:14 UTC
Here's my experience with 0.3C build 0023..

After sending the payment I get this on the history tab:



and the sell offer appears on the exchange tab again:



and after the payment gets confirmed the history tab info changes to this:



and the sell order finally disappears from the exchange tab.

That is kinda confusing for a 1st time uesr..  Roll Eyes

edit:
just saw this
Hey all,

Please note 0024 is available for download, corrects an issue where accept offers are displayed as expired while payment is pending.

Thanks
Zathras

Hi, yep sorry about that, the previous fix on expiry was too aggressive and caused pending buys already paid to appear expired (self correcting one the payment was confirmed), that behaviour should now be fixed.

Thanks
Zathras

Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 18/04/2014, 23:44:55 UTC
Hey all,

Please note 0024 is available for download, corrects an issue where accept offers are displayed as expired while payment is pending.

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 18/04/2014, 23:44:03 UTC
I have downloaded the "MasterchestWalletAlpha_Bin.zip" once yesterday, and 3 times today, from the "Windows Wallet" link at http://www.mastercoinwallets.org/. The files extract just fine using either 7-zip or WinZip. But when I try to run the "Masterchest_Wallet.exe" program, my Norton deletes it, and gives me a message that the file contained the "SONAR.Heuristic.120" trojan.

I am still successfully using the "MasterchestWalletAlpha_Bin.zip" that I downloaded mid-March. But I wanted to update it.

Any ideas anyone?

Smiley

EDIT: Okay, the same thing happens when I download the download zip from github at https://github.com/zathras-crypto/masterchest-wallet.


EDIT: I haven't determined what the problem was, so I bypassed Symantec. We'll see. Mastercoin works just fine.
I ran the computer using a Linux OS off a USB Flash drive. It seems to have deleted the anomaly.

Hey,

I ran this through virustotal and wasn't able to see any issues - I actually recommend putting an exception in for any resident shield or network proxy, as if it proxies all the network requests (RPC) to bitcoind/qt it slows things down by >50%.

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 14/04/2014, 00:00:24 UTC
Build 0023 is available, please update.  This fixes a critical bug that flags payments for DEx purchases in the block immediately following expiry as valid (incorrectly).

If you would like further explanation please see below.

Binary via Github: Download

Thanks
Zathras

In a Master Protocol distributed exchange transaction the seller decides on a 'payment window' - a length of time (in blocks) for the buyer to make payment after his acceptance has been confirmed in the blockchain.  After this payment window, the acceptance expires.

If for example the seller has specified a time limit of 10 blocks, and the buyer accepts the sell offer in block 300000, the buyer then has until block 300010 to make payment.

A bug in the way Masterchest processes expiration allowed these acceptances to remain pending for the block immediately following expiry in certain circumstances, thus potentially allowing a DEx payment to incorrectly be seen as valid if it was exactly one block late.

This bug was discovered via our consensus systems noting that Masterchest had deviated from the reference this morning (Masterchain.info - unaffected).  Masterchest softwares (wallet and block explorer) incorrectly validated the purchase accepted in https://masterchest.info/lookuptx.aspx?txid=0d2f2f864a51938721a17963aa63925da4cd67ab1072d9ae339c3c0073b1308c

This bug has now been corrected and all Masterchest users are strongly encouraged to update their wallet software.



Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 04/04/2014, 00:06:36 UTC
OK thanks - just to double check are you fully re-indexed and fully synced (bitcoin wise)?  It looks like it from the screenshot, but bitcoin will throw a 500 if it can't find the transaction or block we're searching for.

The next library build will have some additional information provided when bitcoin returns internal server errors.

For an immediate fix on another topic, J.R. pointed me to a bug with empty history - was fixed in my smart property experimental branch but still buggy in master, so have committed that as an urgent fix.  If you get an exception because it's a fresh wallet or you've never done any Mastercoin transactions, please pull the download again for the fix.
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 03/04/2014, 06:53:45 UTC
Strange. RPC seems to be working, otherwise the initial check on startup would have failed. And in nuffsaid420's case MSC transactions were recognized which indicates a RPC connection as well as valid transaction fetching and parsing. When and how often does the exception occure? Several hundred times or only from now and then? Are "simple send" transactions the only ones found?

g0re79: does it stop at this point for you? (DEBUG: Block Analysis for: 292147)

Yes, it hanged on block 292147. I wiped out blockchain and now redownloading it again (with -rebuild). I will update this in couple of hours.

EDIT: The only thing that changed is that its now stucked on block 292145 (bitcoin wallet synced)
EDIT: With every new run it hangs with block decreased by 2 (292143 - 292141 - 292139 - 292137...)

Hey guys, sorry haven't been around much - head down coding Smiley

g0re79 can you post the output of 'getinfo' from your bitcoin installation?

Thanks
Zathras

Code:
"version" : 90000,
"protocolversion" : 70002,
"walletversion" : 60000,
"balance" : 0.99323521,
"blocks" : 293901,
"timeoffset" : 0,
"connections" : 8,
"proxy" : "",
"difficulty" : 5006860589.20540050,
"testnet" : false,
"keypoololdest" : 1368442926,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"errors" : ""

Quote
does an error occure between those two blocks each time?

As I wrote - every time I ran Mastercoin wallet there is same error with block number decreased by 2.

Thanks for the info.  The next version will have additional debugging in failed RPC calls.  FYI the wallet is disposable - have you tried deleting the entire (Masterchest) wallet folder and pulling the download again?
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 03/04/2014, 04:24:46 UTC
Strange. RPC seems to be working, otherwise the initial check on startup would have failed. And in nuffsaid420's case MSC transactions were recognized which indicates a RPC connection as well as valid transaction fetching and parsing. When and how often does the exception occure? Several hundred times or only from now and then? Are "simple send" transactions the only ones found?

g0re79: does it stop at this point for you? (DEBUG: Block Analysis for: 292147)

Yes, it hanged on block 292147. I wiped out blockchain and now redownloading it again (with -rebuild). I will update this in couple of hours.

EDIT: The only thing that changed is that its now stucked on block 292145 (bitcoin wallet synced)
EDIT: With every new run it hangs with block decreased by 2 (292143 - 292141 - 292139 - 292137...)

Hey guys, sorry haven't been around much - head down coding Smiley

g0re79 can you post the output of 'getinfo' from your bitcoin installation?

Thanks
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 25/03/2014, 21:55:27 UTC
Nice app, congrats. However there is this issue that goes with your app but also others on Win8 x64 IE10 , and that is the error 500 which is returned by the bitcoin wallet/server .
As have said, the same behavior goes with any other rpc apps that are connecting via Explorer , and on the other hand all that are connecting via php or made in SciTE are passing just right.



Any ideas on why this happen are welcome, since they will help you + me + others.

I notice you're running build 0019, try the latest (0021) it has retry capability in the RPC calls if your bitcoin installation doesn't respond on the first try.  It's doubtful this will solve your issue (as it's an internal server error not connection error) but always good to be running the latest build.

Also, could you post the output on the debug panel?  

What antivirus platform are you running?  I've seen a few interfere with comms to RPC.  Any firewalling on the interface for bitcoin RPC? Is bitcoin fairly vanilla - any customization?  There are still some things that Masterchest won't support, for example force using IPv6 instead of IPv4 in bitcoin-core may cause problems (if you don't know what that is then don't worry you won't be using it).

Once we see which step it's up to in the debug panel perhaps I can give you a build with extra debugging at that step to shep some light on what's going on.  We do have users on Win8 x64 (unsure if IE10) using the wallet successfully, so I'm not sure if it's something specific to your local environment.

Thanks Smiley
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 24/03/2014, 05:39:05 UTC
I love you for the animated sync icon... Grin

And I see you adopted some of my suggestions. Thanks!

A general question: is there a reason that you show TMSC as default in the DEX? Also the balances in the addresses view have the order "BTC", "TMSC", "MSC" - I'd almost say: switch it! MSC is the most important one, BTC the least important one. I think. Smiley

About the support page: it would be very interesting to see how often it's opened. I read in the main thread that some said "all wallets are not very usable" (I disagree!), so this would be a tool to get some real numbers to falsify this fact.

Maybe this is a crazy idea, but what do you think about some kind of text box on the support landing page and after a user submitted his problem it is forwarded to a newly created mailing list (e.g. support at mastercoin.org). And volunteers could sign up to respond to those support requests? I think Dom is probably the right person who is able to evaluate such an idea?

Hehe I wasted about an hour rotating that original sync icon a bunch of times to make an animation but the result was pretty poor - I think the new (properly generated) one looks much better - thanks for the ideas Smiley

I can change some of the defaults around, I think there is an issue for that already.

I could always grep the logs for the number of times that page is hit if needed sure.

Doing some sort of ticketing is great if a reasonable turnaround can be achieved - the difficulty with things today is people want their answers (now! now! now!) and even say 8 hours which used to be a good customer service turnaround is seen as slow (not that many in the crypto world deliver service even close to same day though!).

I think a decent FAQ needs to be added to that support landing page at minimum though.

EDIT: Perhaps that's expecting a bit much (8 hrs) - this is a very young industry after all - too much time in the day job negotiating SLAs with helpdesk Tongue
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 24/03/2014, 02:19:43 UTC
Build 0021 is up.

Minor bugfixes and some UI improvements (thanks for all the suggestions!).

Thanks Smiley
Zathras
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 23/03/2014, 20:15:59 UTC
After reimporting the other wallet.dat again, I think I was fooled by my own perception. Both share same transactions, thus the impression of a similar transaction history as well as many addresses with tiny balances etc.. Grin

I went through every view and added a bunch of notes, you'll find the part about the floating point delimter there, too: http://i.imgur.com/lffLvCB.png


Edit: found the delimiter problem: DataTables appearingly use their own localization information and overwrite even what was defined on a thread scope. Quickfix: currencylist.Locale = System.Globalization.CultureInfo.InvariantCulture in the module file.

Legend DexX - added.

Thanks
Zathras

EDIT: Notes are extremely useful, thanks Smiley

On the 'ugly' scrollbars - couldn't agree more however since this is WinForms and not WPF repainting scrollbars is very scrappy/hacky I think - if you have any suggestions here I'm open to them absolutely.
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 21/03/2014, 01:46:39 UTC
Looks good so far, the processing was indeed much much faster. And the progress bars are awesome!
Thanks - have been wanting to get this out (but crazy couple of days as you know!) because I knew there was some low hanging fruit for optimization (+little indexing sprinkled here and there helps a lot!).

What still remains is the problem with "," and "." interpretation of balances within the balance overview which shows super high amounts.
Ah yes, been meaning to simulate that (setting a locale in a VM that has , instead of . so I can replicate myself & test).  Remind me again does it also do that on the currencies panel?

And I tested something else what normally shouldn't happen, but this may be handled nevertheless:

I'm using different wallets and I used the MSC wallet with Masterchest, then deleted all Masterchest folders, downloaded the new GitHub version, but changed the wallet.dat inbetween. After starting the new version for some reasons the addresses from the MSC wallet were still shown under addresses, but if I try to send coins, it only shows those from the new wallet. I'm actually a bit surprised, because I deleted also the wallet.sdf etc.
Hmm, we enumerate addresses via multiple RPC methods (because contrary to the bitcoin-core doco, listaddresses does not return all addresses - for example change) but then we check every one via the validateaddress RPC call, using the ismine:true condition before adding to the address stack.  Could you do me a favour?  In your bitcoin install run the command validateaddress address on one of your MSC addresses while in your other wallet.  I can't see any way that bitcoin would return anything other than ismine:false for that but good to check.

I'm also trying to think of other ways this could occur.

Thanks as always for testing Smiley
Zathras

P.S.  You can interchange wallet.dat as much as you like (as long as the wallet isn't running of course) - wallet.sdf holds no unique information (otherwise we'd need to encrypt it, back it up etc).  Technically calling Masterchest a wallet is a bit of a misnomer, bitcoind/qt is the wallet, Masterchest just overlays an extra layer of functionality over the top (thus allowing me to conveniently inherit the security of the bitcoin-core wallet Tongue)

FYI:
Code:
   Public Function getaddresses(ByVal bitcoin_con As bitcoinrpcconnection)
        Dim addresslist As New List(Of btcaddressbal)
        Dim plainaddresslist, myaddresslist As New List(Of String)

        'first use listreceivedbyaddress 0 true to get 'all addresses'
        Dim addresses As rcvaddress = JsonConvert.DeserializeObject(Of rcvaddress)(rpccall(bitcoin_con, "listreceivedbyaddress", 2, 0, True, 0))
        For Each result In addresses.result
            plainaddresslist.Add(result.address.ToString)
        Next
        'since documentation is wrong and this does not list all addresses (eg change), use listunspent to gather up any addresses not returned by listreceivedbyaddress
        Dim listunspent As unspent = JsonConvert.DeserializeObject(Of unspent)(rpccall(bitcoin_con, "listunspent", 2, 0, 999999, 0))
        For Each result In listunspent.result
            If Not plainaddresslist.Contains(result.address.ToString) Then 'avoid duplicates
                plainaddresslist.Add(result.address.ToString)
            End If
        Next
        'list_received_byaaddress also returns addresses transactions have been sent to (???) - run additional ismine check on each address
        For Each address As String In plainaddresslist
            Dim validate As validate = JsonConvert.DeserializeObject(Of validate)(rpccall(bitcoin_con, "validateaddress", 1, address, 0, 0))
            If validate.result.ismine = True Then
                myaddresslist.Add(address)
            End If
        Next
...
Post
Topic
Board Altcoin Discussion
Re: Masterchest Wallet Alpha Testing Thread
by
zathras
on 21/03/2014, 00:38:50 UTC
Hey guys,

Alpha 0.3C is up.  OP updated.

This update focuses on:
* Major improvements in processing performance - parsing is about the same but my benchmarks show 200%+ improvement in processing - thus makes an up to date client much faster to use
* Hash based chain re-org protection (upgraded from always roll-back 5 blocks to storing hashes for blocks we process DB local and then comparing with bitcoind/qt when we start scanning)
* Some UI improvements, bugfixes

Thanks Smiley
Zathras
Post
Topic
Board Marketplace (Altcoins)
Re: 300 BTC Coding Contest: Distributed Exchange (MasterCoin Developer Thread)
by
zathras
on 16/03/2014, 23:25:40 UTC
Well the thing is bitcoin uses heuristics to intelligently select coins to use intentionally to minimize the transaction weight on the network etc.  Masterchest does none of this and just follows the rules whether that results in an optimized transaction or not.  

Like a car from 50 years ago, it still gets from A to B but it could be more efficient.

I think the best way to come at it is to just go straight for proper adaptive transaction crafting and make Masterchest smart enough to handle some context - eg a couple examples from one of my git comments:

Can I craft this transaction in a way that leaves unspent inputs available for further Master Protocol transactions from this address same block?
Can I craft this transaction in a way that minimizes the fees payable by the user?
Can I craft this transaction in a way that consolidates some of the small reference outputs (.00006 etc)?

And so on...  After that we move from MP to Bitcoin considerations:

Can I craft this transaction in a way that minimizes transaction size on the network?

Etc Etc

Appreciate the offer but I think I'll be OK - after looking at this a bit more I actually don't think it's that cumbersome to look at increasing fee after initial transaction creation & signing - even if the fee does need to be increased (and the total input doesn't cover it), that's at worst two extra >dust inputs which would be about ~300 bytes so not enough to trigger another fee increase - that nullifies my concerns that we'd get into a loop adding inputs to cover fees which grows the tx to require more inputs thus more fees, which grows the tx and rinse repeat.  Worst case is we have to go back and change things once and resign, which isn't so bad.

Thanks
Zathras
Post
Topic
Board Marketplace (Altcoins)
Re: 300 BTC Coding Contest: Distributed Exchange (MasterCoin Developer Thread)
by
zathras
on 16/03/2014, 21:25:09 UTC
Additionally because there are a number of them, the size is actually over 1KB.  Thus we have a small input value and a (relatively) large byte size for the transaction.

This is the most important part related to this transaction. Over 1 KB size = 0.0002 fee required to be treated as standard transaction. If this was issued via one of the wallets, the wallet creator needs to adjust to take transaction size into consideration asap. Delayed transactions due to insufficient fees can be a game breaker, if MSC are bought via DEX and the time window closes before the transaction confirms.

+1

and thanks Zathras for the explanation

what should be the process for this?  someone going to file an issue? i guess technically its not a master protocol thing, but it would need to be at least discussed in a special considerations area of the spec?

It's an interesting topic - receive lots of MP messages and you'll have lots of small ~0.00006 inputs - redeemimg them at the same time means a bigger transaction, thus requires more fees.

I actually think it's mostly about us devs being smart & creative about the way we craft our transactions to make sure we're spending these 0.00006 inputs where possible together with inputs from other transactions but at the same time not throwing around silly transactions with 50 tiny inputs.
Post
Topic
Board Marketplace (Altcoins)
Re: 300 BTC Coding Contest: Distributed Exchange (MasterCoin Developer Thread)
by
zathras
on 16/03/2014, 21:02:47 UTC
Additionally because there are a number of them, the size is actually over 1KB.  Thus we have a small input value and a (relatively) large byte size for the transaction.

This is the most important part related to this transaction. Over 1 KB size = 0.0002 fee required to be treated as standard transaction. If this was issued via one of the wallets, the wallet creator needs to adjust to take transaction size into consideration asap. Delayed transactions due to insufficient fees can be a game breaker, if MSC are bought via DEX and the time window closes before the transaction confirms.

That's actually a really interesting problem - especially in relation to these fractional transactions.  We build the transaction before we can see its total size, but by then we've already selected the inputs.  As we're talking such tiny amounts (often inputs of 0.00006) increasing the fee by 0.0001 likely means we have to add another/more inputs to cover the increased fee, but that has now changed the size of our transaction again so we may need to yet again go back and add more inputs & more fees and so on.  Fun game Smiley

In all seriousness though I do agree with DexX - changes to payments make me nervous but it should be safe.  I've pushed up a shortcut fix which grows the fee during transaction build using simple (very conservative 200 bytes per input) guestimation based on total number of inputs at that point in the transaction build.  Should take care of any potential risk for now until I can be a bit more classy with input selection Smiley

Code:
                   'sanity check input count is not >24
                    If inputcount > 24 Then
                        MsgBox("ERROR: Input count >24, temporary restriction applied - library currently will not send transactions with over 24 inputs.  Aborting")
                        Exit Function
                    End If
                    'quick fix for avoiding large transactions with small fees - come back & revisit this
                    If inputcount <= 4 Then totaltxfee = 17000
                    If inputcount > 4 Then totaltxfee = 27000
                    If inputcount > 9 Then totaltxfee = 37000
                    If inputcount > 14 Then totaltxfee = 47000
                    If inputcount > 19 Then totaltxfee = 57000
                    'recalculate totalout
                    totalout = totaltxfee + paymentamount
                    'do we have enough yet?
                    If inputsum >= totalout + 6000 Then Exit For

Note this only applies to DEx payment transactions, all other transaction types Masterchest selects a single input only to cover fees.

Thanks
Zathras
Post
Topic
Board Marketplace (Altcoins)
Re: 300 BTC Coding Contest: Distributed Exchange (MasterCoin Developer Thread)
by
zathras
on 16/03/2014, 19:22:50 UTC
The payment in question is https://blockchain.info/tx/b9151c3371d46853e59ee6c9124c2a534f41363b29f372d914a19a83a5917665
and according to blockchain.info a tx-fee was paid.
This is not so much a problem of the Master Protocol, but more one of how bitcoin works.  If I may take a moment to explain Smiley

Miners 'prioritize' transactions.  This means when your transaction is relayed to a given mining client it adds the transaction to its memory pool and assigns a priority and fee.  If the priority/fee is high enough, hopefully the transaction will be included in the next block.

Now - the interesting bit is in how this transaction priority is calculated by bitcoin core, as follows:

priority = sum(input_value_in_base_units * input_age)/size_in_bytes

Thus we can see the smaller and younger the inputs, the lower the transaction priority becomes.  

If we specifically relate this to your transaction, we can see that the inputs were all very small.  Additionally because there are a number of them, the size is actually over 1KB.  Thus we have a small input value and a (relatively) large byte size for the transaction.  If you pop those numbers into the formula above you'll see this provides for a very low priority transaction.

The good news (and this is bitcoin-wide) is that in laymans terms - the more you send, the higher your transaction priority.  Thus this may be an issue for low value fractional transactions and I'll do some further investigation and discuss with the team - but essentially as the value of the DEx purchase increases, the risk of the issue you describe occurring decreases.

I have also been doing some thinking on input selection, but that would apply only to the Masterchest implementation when I get there.  Currently I select smallest input for risk minimization (avoid losing a big input if something goes wrong creating the transaction).  On the todo list is adaptive transaction encoding in the library, so rather than 'dumb' input selection we look at input values, ages and eventual transaction size to determine priority before it's broadcast & if this would result in a LP transaction that is likely to take a while to get mined, re-encode it if possible for a higher priority, else send it with a higher fee.  That's a complex undertaking though so will take a little time (we always have to be careful when coding input selection and amounts as that's where the biggest potential to lose bitcoins sits IMO).

Thanks!
Zathras

EDIT: Also realized I wasn't explicit in stating it's of course also feasible to simply discourage (or disallow) fractional purchases of for example 0.000X BTC after a specific block height in the protocol itself too - the Master Protocol DEx has never been intended for high frequency or micro trading (and these micro trades cost more in fees than the trade itself).