EMVPARTY discussion: Gas cost for contract execution

I’ll probably run into some internal maximum of this forum s/w, sorry…

It depends on the price ;-). If it’s cheaper to burn XCP than running EVM on a comparable platform, it would promote the burning of XCP until such time the price advantage is gone.

We can’t freeze the XCP exchange rate, so this doesn’t do much in terms of stability and predictability of SC gas cost.
It may promote “hoarding” of XCP when the price is seen as good, but since there’s no easy way to figure out easily when to buy/sell so ultimately contract users would probably prefer something simpler.

Well this doesn’t pay for gas (execution of SCs) so it doesn’t reward all the right people.

How many servers do we need to run SC’s and how many SC’s (assuming resources required by the “average” SC) can a single server execute? Do we expect all CP servers to execute all CP contracts?

I think we can’t (shouldn’t) discuss payments before we know the costs. A clearer problem statement, substantiated with some testnet metrics, would be highly desirable, IMO.

Okay, but is everyone fine with the actual servers not getting paid at all for the execution of SCs? I can’t say I like that.
CP servers already don’t get paid and it’s somehow assumed that they are maintained by folks who “make money anyway”.
Maybe it’s not possible to do anything about this from a tech side, but I’m asking because above I asked a related question: do we expect that the most powerful CP server will be able to execute all SCs and not fall behind? If not, who’s going to tell 10 smaller nodes which contacts to pick?
This is another example why performance tests with gas-guzzling SCs should be done.

Sounds fine, except that if you deploy an SC to operate it for a while (say 1 year) you can’t know how much it’s going to cost you, so you’d have to either buy up a year supply of gas (XCP) or have dynamic pricing for your customers (would they be okay with that?).

I like your thinking, but as before I’d like to know why everyone assumes CP servers are free.
I’d like everyone (who has an opinion) to offer their estimate of resources and cost required to run a CP server that can process all SCs without falling behind.

And who burned BTC the first time around.

In real life terms, if it went deflationary, it would become too expensive to run SCs so demand for gas-related XCP would drop until such time XCP becomes cheap enough.

Other points:

  • Imagine the unimaginable: in 3 year’s time BTC can do 5 times as many transactions, etc. The cost of running a CP server node that can execute all SCs in near-real time becomes $500/month. What then? One server goes down, CP SCs stop executing.
  • Same scenario, but there’s no single x86 server that can execute all SCs
  • The price of XCP drops to 90% or jumps 10x so gas becomes ridiculously cheap or expensive. Noone can afford to run a server, or pay for gas, on CP.

I am also wondering why we’re not considering BTC more. Maybe a mix of sorts (say, 0.1 XCP to create a SC, and a separate charge to execute it), but this still doesn’t meet my own goal of rewarding server owners.

Sounds great as long as you’re not the one who has to pay for the server that executes SCs. It’s like when end users are complaining that bitcoin tx fees are too damn high.

Someone correct me if I’m wrong here, but does anyone think it’d be a good idea to have only 2-3 CP servers that can execute SCs? That sounds terrible to me.

POS vote is potentially dangerous.

I like the idea of dynamic parametric formula, maybe a combo that includes BTC (current hash rate, perhaps) if part of payment could be in BTC.

I need to study this (I deliberately haven’t, to be able to approach this with an open mind) but if contracts can be activated only by BTC tx that make use of it, the cost of BTC tx should be able to prevent EVM exec spam.

I share your opinion on this.

Post-BTC planning should be out of scope - it’s way beyond anyone’s capability, BTC is the core XCP technology and a hard fork would be required in any case, so why bother?

I know I’ve seen 1-2 complaints about CP burning BTC, but most people realize it increases the value of BTC for everyone and overwhelmingly there’s no bad feeling about that.

It wouldn’t tie the price of XCP to BTC, IMO. If “1 gas” costs ( 2 * bitcoin_core_recommended_tx_fee) + ( 0.0001 XCP * unit_of_work), then they can’t choose the cheapest.

Okay but that’s just 1 piece of the puzzle. In that case the price (in US$) would vary wildly so we need another piece - how to change the formula dynamically so that SC owners get a reasonable degree of predictability and be able to justify deploying their SCs on CP.

It was $0.7 and it was $7 and within months it could be something entirely different. If you have an app that has 2 SCs and consider where you want to run this, and then figure it may cost you anywhere between $170 to $1,700 per year, it’s not a fun decision to make. Even if you prefund your SC, if XCP goes up 5x, you’d spend 5x more than you planned.

Do you mean metacoin? Altcoins are currencies that don’t use the BTC blockchain.

I don’t think using a metacoin is a problem. Gas fees in XCP would make XCP more liquid and narrow the spread which would also be good for the DEx and other applications and use cases. (I think a mixed payment in BTC and XCP would be even better, but even in that scenario there’s XCP).

But it was mentioned above that the cost could drop to 0.00001 XCP or lower.

Yes, and XCP being much smaller, it’d gyrate wildly. That’s why I’m in favor of a combined BTC + XCP formula.

Why would they want to discriminate against burns?

I would like to add here to what @robby_dermody said above, that it could be dangerous to reference DEx prices.
That would be true, but only initially. As people start crawling DEx for good deals, the price should eventually become stable. I would not exclude the possibility that a stable BTCXCP market would be created on the DEx if one knew that SCs reference the price. For example, let’s assume someone sells XCP for a low price. They would be sold immediately. If someone sells XCP for a price that is 5% or more expensive than elsewhere, and SCs must buy it, many would buy elsewhere and create a slightly lower sell offer on the DEx because they could still make money this way.

There’s no need to make gas cheaper than the prevailing price for comparable work. Cost (in terms of compute resources) is roughly the same as on Ethereum (since the code is the same) and nothing is free.

Can @rubensayshi or @robby_dermody create a CP EVM benchmark suite (pick some popular contracts, add them to counterparty-lib repo?) so that we have a way to evaluate the cost in compute resources? I’d love to kick tires this way, and in the meantime I’ll start reading about how ETH does costing to prepare for part 2 of this discussion :slight_smile:

Edit: I did some googling and put my notes in this post below. Those who are new to this problematic can check it out to save some time.