Counterparty requirements
1) 80 bytes of data
2) Counterparty transactions are relayed through the network as normal transactions
Do you think it is possible to reach an agreement from your side on how we can achieve these requirements? If so can you think how this could be possible?
I don't think those requirements are reasonable.
Why does it matter how much data XCP can use, or how the transactions are relayed?
What should matter is that people can use it for A, B, and C goals.
The technical side is just a matter of implementation, not requirement.
We need at least 80 bytes because that's the limit the Counterparty protocol was designed around.
Expect to have to change the protocol at some point.
No offence intended (this is expected in ordinary development), but the current one is at best a "first draft".
The solution you proposed is hackish and political, and needlessly so.
If you mean the predefined relays, yes, it is a bit hackish. As is the current protocol generally.
But it will
work in the short-term, while a better protocol for upgrading to can be designed.
We need a simple, robust and standard way of relaying our transactions through the normal and fully decentralised Bitcoin network. We need for our system to have as few points of failure as possible.
Forcing others to provide services is not justified by the "need" for it.
Redesigning the protocol to make it better is one thing. Trying to shoehorn it into a completely arbitrary 40-byte space is not. 40 bytes is probably just too little for what we want to do anyway---for what we are
already doing. In the short-term, CheckMultiSig works just fine for us. It's much easier, better, cleaner and safer to switch encoding mechanisms (which there are also a million of) than to shrink every message in the protocol in a backwards-incompatible fashion... (again) for no reason.
We're not talking about forcing anyone to do anything. We're talking about the default relay policy for Bitcoin Core. If it were a matter of forcing anyone to do anything, why would a 40-byte OP_RETURN OK and not an 80-byte OP_RETURN (again, the original, publicly-announced, merged-into-the-codebase plan)?