Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

Disable exchange trading of BTC in Counterwallet #560

Closed
robby-d opened this issue Oct 24, 2014 · 29 comments
Closed

Disable exchange trading of BTC in Counterwallet #560

robby-d opened this issue Oct 24, 2014 · 29 comments

Comments

@robby-d
Copy link
Contributor

robby-d commented Oct 24, 2014

Based on user feedback, we should probably temporarily remove BTC-based trading on the exchange from counterwallet.

Note, this is a proposal to temporarily remove it from the version of Counterwallet that we host, not from the Counterparty distributed exchange.

Initial questions for community feedback:

  • Question1: For now, just disable it in the UI (where you can't make BTC-based orders)? Or totally gut it? (I'd favor the first, as we can always gut it later if this was indeed the right move)
  • Question2: still allow look up of BTC-based trade pairs?
  • Question3: Keep the BTC based code in cw/cbd for now, to better gauge user feedback before we rip it out?
  • Question4 (more for adam/ouziel): What do we do about the BTCescrow stuff? Just keep it on the side, or gut it from cw/cbd (hasn't been merged into develop yet, right?)

Adam and I spoke about this. He can comment on a possible alternative here (using atomic swaps), but it remains to be seen how uniform we can make the counterwallet UI if we do swaps for the BTC pairs, and use the dex for everything else.

@ghost
Copy link

ghost commented Oct 24, 2014

My feedback - leave all the code there for the time being but hide it away in Counterwallet. Promote Vennd and Quick Buy and XBTC more on the UI. Leave the BTC-based trade pairs but, for example, replace the "Buy XCP" panel with a "Quick Buy XCP" panel. Get rid of the buy orders panel but keep the "Completed Trades" panel.

Another idea - when a user makes a BTC order, in the background that gets converted to XBTC and the order is placed. When the order is matched it gets converted back to BTC. User starts with BTC, user ends with BTC. Obviously, warn the user that this is what is happening in the background beforehand.

@adamkrellenstein
Copy link
Member

ACK

  1. Just disable it in the UI.
  2. Nope. That'd be confusing.
  3. Yep
  4. Let's keep it on the side, and allow other people to run Counterwallet, etc., with BTC trading enabled if they like.

Before we know what the new UI will look like, we'll have to be further along in the development process of the alternative system. That said, I'm pretty sure that it won't be too hard to make the UX pretty consistent. An atomic exchange will probably be a multi-step (read: multi-transaction) process (in the protocol), but different (and certainly faster) than BTC trades as they are currently implemented.

@adamkrellenstein adamkrellenstein changed the title Remove/disable exchange trading of BTC Disable exchange trading of BTC Oct 24, 2014
@adamkrellenstein
Copy link
Member

In case it's not well-known, the justification for this proposal is that BTC trades require users to settle matches sometimes a long while after the orders are made, and then the settlement must happen quickly, or the order match must be cancelled. This model is difficult to make work with a web wallet with which the server has no control over user private keys. Users then have to stay logged in to the site indefinitely to make their orders (and the orders of others) go through, and this is impossible to enforce.

@adamkrellenstein
Copy link
Member

Disabling this feature should dramatically improve the experience of users that are new to Counterparty and Counterwallet, and don't know that trading with BTC on the DEx is different from trading between native Counterparty assets.

@evanwagner1
Copy link

I agree that it should be disabled.

@DirkDigglet
Copy link

Really good that you guys responded so quickly to this. I was the person commenting most on the BTCpay recently and I'm also very new to crypto in general. Hopefully it can be worked around in the future but I agree it should be hidden on the exchange for now, if only because another user should not be able to actively and consistently tie up other sellers/buyers funds on the exchange. I was in counterwallet for over a week solid and saw multiple people comment their frustration on the system. And let's just say there are a couple people who have been gaming the DEx and trolling orders for that entire time period, who will be very unhappy with the changes ;)

That said, I know it's probably frustrating to have to do this, but take it from a new person that I'd rather not have the option here than have 14 out of 15 trades expire while I'm waiting in counterwallet for 3 hours. Not trying to be a dick here, just giving the perspective of a crypto-noobs first impression.

@DirkDigglet
Copy link

Let me also say that I think the current system would work great (albeit slow) if there weren't literally just a couple people on the exchange taking advantage of the "logout to expire order" issue. I'm certain after a little snooping that it's just one or two guys causing this whole system to fail at the moment, though I'm sure as more people join that number would rise..

@robby-d
Copy link
Contributor Author

robby-d commented Oct 24, 2014

I'm fine keeping all of the APIs in on counterblock, and just disabling it in the UI.
We could add a config value in counterwallet that could allow the activation/deactivation of BTC trading.

My feeling is to keep it so that people can view BTC trade pairs, but on a BTC trade pair, the buy/sell boxes are missing, and there is a note pointing to use XCP instead (and either pointing to quickbuy, or a centralized exchange)?

A potential thing here is that the BTC trading adds a HUGE amount of complexity and code to counterwallet... we can keep it in, and allow a master switch to turn it on and off, but once we have the replacement, I'm fine jettisoning the whole thing because of that.

@JahPowerBit ... what are your views with this?

@robby-d robby-d changed the title Disable exchange trading of BTC Disable exchange trading of BTC in Counterwallet Oct 24, 2014
@ouziel-slama
Copy link
Contributor

I have not strong opinion about disable or not. However if we agree with the postulate, that it's impossible to have an efficient and reliable btcpay without storing private key server side, then I am in favor to completely remove BTC markets and BTCPay in a clean way. Like you said Robby, BTC trading take an huge amount of code and complexity, and can be a good thing, btw, to lighten the code, especially that If one day we find a reliable solution for a "web btcpay", it's no sure at all that the actual code will be useful.

@evanwagner1
Copy link

Only one thing: Even if we do remove BTC exchange functionality from Counterwallet, we can't remove BTC orders from the Open Orders tab, of course, as users must still be able to cancel their BTC orders.

@ghost
Copy link

ghost commented Oct 25, 2014

Q1: If BTC is altogether unavailable on the DEx, are all users going to have to denominate their assets in XBTC?
Q2: Is there enough XBTC to denominate all assets in it? If not, what does that way of denominating assets represent?
Q3: What would this do to liquidity and asset prices? I don't know.

My opinion:
A. I think it'd be okay to allow users to enable it (it can be disabled by default) in their wallet Settings. This would take care of Q2 above.
B. A transitional period of 7 days should be implemented (or maybe starting from block 330000) to allow people to adjust (start creating asks/bids in XBTC, wind down their orders, etc.) and new support content to be created.

@adamkrellenstein
Copy link
Member

It'll only be disabled on Counterwallet. This is not a proposed protocol change.

We won't be replacing BTC with XBTC, which is not a perfect substitute.

@vennd
Copy link

vennd commented Oct 25, 2014

If the friction is too high, then it makes sense to disable BTC, except for power users who can use the CLI. Maybe people ought to start thinking about trading against XCP anyway.

@robby-d
Copy link
Contributor Author

robby-d commented Oct 25, 2014

So I guess the main question now is: do we rip out all of the BTC based code, or have a flag that turns it on and off. The former will remove a lot of complexity, and the latter adds complexity. The question is: do we think that anyone will run their own counterwallet that will want to use this BTC code?

My thought is probably not...if we're having issues with it, then someone else who runs their own counterwallet will have issues with it too... opinions?

@adamkrellenstein
Copy link
Member

I'm OK with removing the code. I do think that reliable BTCpay is fundamentally incompatible with client-side cryptography in web wallets.

@robby-d
Copy link
Contributor Author

robby-d commented Oct 25, 2014

So what would remain BTC related:

  • ability to view market pairs with BTC (just can't trade on them)
  • ability to see open BTC orders that you have and cancel them

anything else?

@evanwagner1
Copy link

Arguably you could keep both the ability to view market pairs with BTC, but I don't see any logical reason to do that, if you can't trade against BTC.

@adamkrellenstein
Copy link
Member

I don't think you should be able to view BTC market pairs, and the ability to cancel BTC orders can be safely removed in a matter of weeks.

@evanwagner1
Copy link

@PhantomPhreak Yes I agree. Counterwallet is not also a block explorer, hence being able to view orders you can't fulfill makes no sense.

@robby-d
Copy link
Contributor Author

robby-d commented Oct 25, 2014

@cityglut ...sure... I guess there's blockscan and the CLI to see the BTC market

@robby-d
Copy link
Contributor Author

robby-d commented Oct 28, 2014

@JahPowerBit: is this work you'll be able to slate to start soon?

@ghost
Copy link

ghost commented Oct 28, 2014

if the features are already implemented, just leave them in and let users enable them in advanced options. Leave them disabled by default, and prompt a frightening disclaimer.... Definitely a better solution than removing it.

@ouziel-slama
Copy link
Contributor

@xnova , just need to finish the "Fast initial synchronisation" for counterpartyd and I will take care of that. I think I will start sunday or monday.
@goodtaster, I really don't think that an application should keep "frightening" features! without manichean, I think all features should be usable by everybody, advanced options are here to give time to users to "learn" the application easily, not to hide unusable features.

@mtbitcoin
Copy link

I think this should be done in stages. Just allow an option to have it disabled in counterwallet first. And if this works out well after sometime without any impact only then consider removing the code altogether.

From a non technical perspective, I can already see the "trolls" stating/shouting that you can cannot trade with BTC on Counterparty. One of the selling points of Counterparty riding on the Bitcoin network was that it was possible to trade with BTC, but with this option (although it was always some what less than ideal) removed it would be less one selling point for counterparty

@robby-d
Copy link
Contributor Author

robby-d commented Oct 29, 2014

@mtbitcoin: Yes, this was my initial thought. If @JahPowerBit thinks it's not too burdensome and complex to take this approach, then I personally am fine with it. We can put this in, flick the switch to disable BTC, wait about a month, and if everything is good and no major issues, gut BTC trading from Counterwallet.

@JahPowerBit , @PhantomPhreak : thoughts?

@mtbitcoin
Copy link

@xnova Further down the road, is gutting BTC trade the only option?

Personally I think the ability to trade BTC directly on Counterparty (was) and is one of the more major USP... The other being the security of riding on the BTC platform

If I recall correctly when this was first an issue and discussed, a few proposals were put forward but most were classified as stop gap/temporary solutions and that a more permanent solution was required.

@ghost
Copy link

ghost commented Oct 30, 2014

@mtbitcoin I agree with you. I believe more people like the feature than have a problem with it.

@adamkrellenstein
Copy link
Member

@mtbitcoin, @Rippler, we're not talking about getting rid of BTC trading on Counterparty. We're talking about removing the feature from this particular web wallet, with this particular security model, which is incompatible with this particular way of trading BTC.

@ouziel-slama
Copy link
Contributor

@mtbitcoin , @xnova , if the goal is to test technicals issues, so it's not useful to proceed with stages. Make optional or remove BTC trading is two completely different works. Test the optional mode will not help us at all to detect eventual bugs in the version without BTC trading.

@ouziel-slama ouziel-slama added this to the 1.6.0 milestone Jan 6, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants