Author

Topic: [ANN][XCP] Counterparty - Pioneering Peer-to-Peer Finance - Official Thread - page 383. (Read 1276826 times)

sr. member
Activity: 390
Merit: 254
Counterparty Developer
Counterwallet live on testnet

Link: https://testnet.counterwallet.co/

Report bugs here: https://forums.counterparty.co/index.php?topic=188.0
Get testnet XCP here: https://forums.counterparty.co/index.php/topic,184
Get testnet BTC here: http://tpfaucet.appspot.com/
Blog post outlining functionality: https://www.counterparty.co/counterwallet-live-testnet/

xnova has done a wonderful job developing Counterwallet and he deserves a big thanks from all of us. Let's all start testing and get Counterwallet on mainnet as soon as possible!

Thanks xnova. A truly remarkable job you've done on this.

Thanks guys. There are no doubt still a number of bugs to work through to get the wallet to a mainnet release, but this is a big accomplishment for the team and we're looking forward to bringing the capabilities of Counterparty to a larger user population. We're targeting a mainnet release within the first week of April. Of course this can change depending on how the testnet testing goes, but I'm thinking we should be able to keep that deadline.
legendary
Activity: 1106
Merit: 1026
As far as I know, 80 to 40 does not change much. Previously we divide data into segments of 80 bytes, now 40 bytes. Just the number of outputs doubled. What's the big deal? Only one OP-RETURN is allowed in one transaction?

Only one allowed.
sr. member
Activity: 262
Merit: 250
How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.

Extremely good point and porqupine has also communicated the same to me.

We would only need a naming convention on how to format the asset description field. The rest can be up to the client side to parse it.

As long as there was some defacto which was perhaps outlined by the Counterparty team but not necessarily enforced, then everyone would be a happy camper.

Eg Lets just use the tilde as a delimiting character in the description. Field 1 = namespace, field 2 = description, field 3 = url

It needs to be a new long asset name field that is enforced by the protocol for long names.  A description will not work because users can put anything in there.

My understanding (a dev can correct me) is that the description field can be modified for an asset.

So lets just say we all agree on a defacto standard for the description field. There are 3 fields delimited by a tilde.

Each of the clients can just invalidate and fail to show any asset in their list where 3 tildes aren't found. The asset owner would have motivation to get it right.

Long asset names should not be changeable just like short names.   The long names are enforced at the time of issuance to be valid only if the issuer also owns the top level asset. 

Afterward everything should go through the protocol using only the short names.

To clarify, in my proposal the long name wouldn't be changeable.

In the leave things mostly as they are scenerio, which is what I was describing above then the 'name space' would be able to change since it is just part of the asset description. The asset name is still the primary key and has to stay the same.

I can see the disadvantage of this where people can issue spam assets to 'typosquat' or even create duplicates of the same namespace. If it's not enforced by the protocol as you said, it's going to cause confusion.
newbie
Activity: 24
Merit: 0
How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.

Extremely good point and porqupine has also communicated the same to me.

We would only need a naming convention on how to format the asset description field. The rest can be up to the client side to parse it.

As long as there was some defacto which was perhaps outlined by the Counterparty team but not necessarily enforced, then everyone would be a happy camper.

Eg Lets just use the tilde as a delimiting character in the description. Field 1 = namespace, field 2 = description, field 3 = url

It needs to be a new long asset name field that is enforced by the protocol for long names.  A description will not work because users can put anything in there.

My understanding (a dev can correct me) is that the description field can be modified for an asset.

So lets just say we all agree on a defacto standard for the description field. There are 3 fields delimited by a tilde.

Each of the clients can just invalidate and fail to show any asset in their list where 3 tildes aren't found. The asset owner would have motivation to get it right.

Long asset names should not be changeable just like short names.   The long names are enforced at the time of issuance to be valid only if the issuer also owns the top level asset. 

Afterward everything should go through the protocol using only the short names.
legendary
Activity: 1106
Merit: 1026
If this data is representative, 2:1 shouldnt be a problem. "00000000000000000000000" alone saves a lot of space
"20434e545250525459" appears three times, so just using those two as special words in a simple huffman tree you can squeeze this down a lot.

I have no idea what data is in the OP_RETURN, but I am assuming there are things that are globally common, like "0000..", maybe there are other globally common things. Put all those into a dictionary and based on the relative frequency assign a variable length bit pattern to the dictionary words.

I see. 0x20434e545250525459 ("CNTRPRTY") is actually used to flag outputs as XCP data. There is no room for simple substitution, I think - "0000.." won't alway be "0000..", but the idea about compression is very interesting nevertheless.
legendary
Activity: 882
Merit: 1000
As far as I know, 80 to 40 does not change much. Previously we divide data into segments of 80 bytes, now 40 bytes. Just the number of outputs doubled. What's the big deal? Only one OP-RETURN is allowed in one transaction?
hero member
Activity: 647
Merit: 510
Counterpartying
Counterwallet live on testnet

Link: https://testnet.counterwallet.co/

Report bugs here: https://forums.counterparty.co/index.php?topic=188.0
Get testnet XCP here: https://forums.counterparty.co/index.php/topic,184
Get testnet BTC here: http://tpfaucet.appspot.com/
Blog post outlining functionality: https://www.counterparty.co/counterwallet-live-testnet/

xnova has done a wonderful job developing Counterwallet and he deserves a big thanks from all of us. Let's all start testing and get Counterwallet on mainnet as soon as possible!

Thanks xnova. A truly remarkable job you've done on this.
legendary
Activity: 1176
Merit: 1134
Could the info needed be compressed to fit into 40 bytes?
What sort of entropy does the typical XCP OP_RETURN data have?

Depending on the data, it might be possible to create a small customized compress/decompress function

If someone can post an example it would help me analyze this a bit more

Edit: due to the importance of this I think it would even make sense to create a custom "dictionary" of common bit patterns (hopefully there are some) in the desired OP_RETURN data. This would have to be put into the counterpartyd, but doing stuff like this might be what is needed to get 2:1 compression, then again maybe standard compression will just work, but I think some sort of custom code would have a good chance. It all depends on the type of data.

James

What do you mean by "dictionaries for common bit patterns"? To my knowledge XCP transactions use some bits to flag a data package as XCP package and some to define the transaction type, but the rest is acutal transaction field data without OP codes or whatsoever.

Code:
1c434e54525052545900000000000000000000000100000045d964b80000000000 

20434e5452505254590000001e5329a91040952f00000000000000000033474f4c
20442f55534420505249434520736f757263653a207777772e7175616e646c2e63
106f6d204c6f6e646f6e20466978696e6700000000000000000000000000000000

20434e5452505254590000002800035325c3780000000002faf0800000000002fa
12f08040ae140000000000000013b0000000640000000000000000000000000000

20434e5452505254590000000a00000000000000000000000005f5e10000000000
160000000100000002540be400012c000000000000000000000000000000000000
If this data is representative, 2:1 shouldnt be a problem. "00000000000000000000000" alone saves a lot of space
"20434e545250525459" appears three times, so just using those two as special words in a simple huffman tree you can squeeze this down a lot.

I have no idea what data is in the OP_RETURN, but I am assuming there are things that are globally common, like "0000..", maybe there are other globally common things. Put all those into a dictionary and based on the relative frequency assign a variable length bit pattern to the dictionary words.

However, instead of all this trouble, it seems the trick of storing data in unused multisig outputs will solve it with much less work

James
legendary
Activity: 1106
Merit: 1026
Could the info needed be compressed to fit into 40 bytes?
What sort of entropy does the typical XCP OP_RETURN data have?

Depending on the data, it might be possible to create a small customized compress/decompress function

If someone can post an example it would help me analyze this a bit more

Edit: due to the importance of this I think it would even make sense to create a custom "dictionary" of common bit patterns (hopefully there are some) in the desired OP_RETURN data. This would have to be put into the counterpartyd, but doing stuff like this might be what is needed to get 2:1 compression, then again maybe standard compression will just work, but I think some sort of custom code would have a good chance. It all depends on the type of data.

James

What do you mean by "dictionaries for common bit patterns"? To my knowledge XCP transactions use some bits to flag a data package as XCP package and some to define the transaction type, but the rest is acutal transaction field data without OP codes or whatsoever.

Code:
1c434e54525052545900000000000000000000000100000045d964b80000000000 

20434e5452505254590000001e5329a91040952f00000000000000000033474f4c
20442f55534420505249434520736f757263653a207777772e7175616e646c2e63
106f6d204c6f6e646f6e20466978696e6700000000000000000000000000000000

20434e5452505254590000002800035325c3780000000002faf0800000000002fa
12f08040ae140000000000000013b0000000640000000000000000000000000000

20434e5452505254590000000a00000000000000000000000005f5e10000000000
160000000100000002540be400012c000000000000000000000000000000000000
sr. member
Activity: 262
Merit: 250
How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.

Extremely good point and porqupine has also communicated the same to me.

We would only need a naming convention on how to format the asset description field. The rest can be up to the client side to parse it.

As long as there was some defacto which was perhaps outlined by the Counterparty team but not necessarily enforced, then everyone would be a happy camper.

Eg Lets just use the tilde as a delimiting character in the description. Field 1 = namespace, field 2 = description, field 3 = url

It needs to be a new long asset name field that is enforced by the protocol for long names.  A description will not work because users can put anything in there.

My understanding (a dev can correct me) is that the description field can be modified for an asset.

So lets just say we all agree on a defacto standard for the description field. There are 3 fields delimited by a tilde.

Each of the clients can just invalidate and fail to show any asset in their list where 3 tildes aren't found. The asset owner would have motivation to get it right.
newbie
Activity: 24
Merit: 0
How much of this proposal, and of other similar proposals, can be handled by the asset description field? (Not much space is needed to store a URL.).I love namespaces, etc., but I want to keep the protocol-level as simple and as stupid as possible. We could do this sort of thing is Counterwallet and BootleXCP themselves, for example.

Extremely good point and porqupine has also communicated the same to me.

We would only need a naming convention on how to format the asset description field. The rest can be up to the client side to parse it.

As long as there was some defacto which was perhaps outlined by the Counterparty team but not necessarily enforced, then everyone would be a happy camper.

Eg Lets just use the tilde as a delimiting character in the description. Field 1 = namespace, field 2 = description, field 3 = url

It needs to be a new long asset name field that is enforced by the protocol for long names.  A description will not work because users can put anything in there.
sr. member
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
As far as I can tell, this suggested implementation should work and be compatible with the existing protocol. 
This is actually another great suggestion the more I think about it now.

It reminds me of the 8.3 short/long filename.  It should be okay to allow lowercase characters, numbers, and symbols for the long asset name since it will be hash and encoded into base 26 anyway.

Yes, that's basically the gist of it. Take a long asset name and fold it into a short asset name.

The benefit of the distinction between a top level and lower level asset issuance is to give a means to tier the costing of issuing assets in a simple fashion.

I'd be happy to stay with the status quo plus a defacto standard on how to craft the asset description to include a namespace as long as:

a) If we think that the current pricing model is only a short term solution until a floating fee solution is found (similar to transmission fees in Bitcoin).

b) The defacto standard is something centralized such that there is agreement in the community.

I think that's right.
sr. member
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
80 bytes would be better than 40 bytes, but is this amount sufficient to support all XCP transaction types?
Could the info needed be compressed to fit into 40 bytes?
What sort of entropy does the typical XCP OP_RETURN data have?

Depending on the data, it might be possible to create a small customized compress/decompress function

If someone can post an example it would help me analyze this a bit more

Edit: due to the importance of this I think it would even make sense to create a custom "dictionary" of common bit patterns (hopefully there are some) in the desired OP_RETURN data. This would have to be put into the counterpartyd, but doing stuff like this might be what is needed to get 2:1 compression, then again maybe standard compression will just work, but I think some sort of custom code would have a good chance. It all depends on the type of data.

James

It would take some serious shoe-horning to fit all of the data we need into 40 bytes reliably, and in three months they could lower it to 35 bytes (again, for no reason) and then we'd be screwed.

On the plus side, we can fit a lot more than 80 bytes into 256 one-of-three multi-sig outputs, and now we have no incentive to use less than that except lower fees.
sr. member
Activity: 262
Merit: 250
As far as I can tell, this suggested implementation should work and be compatible with the existing protocol. 
This is actually another great suggestion the more I think about it now.

It reminds me of the 8.3 short/long filename.  It should be okay to allow lowercase characters, numbers, and symbols for the long asset name since it will be hash and encoded into base 26 anyway.

Yes, that's basically the gist of it. Take a long asset name and fold it into a short asset name.

The benefit of the distinction between a top level and lower level asset issuance is to give a means to tier the costing of issuing assets in a simple fashion.

I'd be happy to stay with the status quo plus a defacto standard on how to craft the asset description to include a namespace as long as:

a) If we think that the current pricing model is only a short term solution until a floating fee solution is found (similar to transmission fees in Bitcoin).

b) The defacto standard is something centralized such that there is agreement in the community.
legendary
Activity: 1176
Merit: 1134
80 bytes would be better than 40 bytes, but is this amount sufficient to support all XCP transaction types?
Could the info needed be compressed to fit into 40 bytes?
What sort of entropy does the typical XCP OP_RETURN data have?

Depending on the data, it might be possible to create a small customized compress/decompress function

If someone can post an example it would help me analyze this a bit more

Edit: due to the importance of this I think it would even make sense to create a custom "dictionary" of common bit patterns (hopefully there are some) in the desired OP_RETURN data. This would have to be put into the counterpartyd, but doing stuff like this might be what is needed to get 2:1 compression, then again maybe standard compression will just work, but I think some sort of custom code would have a good chance. It all depends on the type of data.

James
legendary
Activity: 1106
Merit: 1026
80 bytes would be better than 40 bytes, but is this amount sufficient to support all XCP transaction types?
hero member
Activity: 672
Merit: 500
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/


what is the outcome for the protocol?

explain to me like I am five Smiley

I guess it will continue to rely on multisig outputs. Dunno if some small operations can be embedded in OP_RETURN though.
hero member
Activity: 647
Merit: 510
Counterpartying
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/


what is the outcome for the protocol?

explain to me like I am five Smiley

Everything will stay the same for now and there is no cause for concern. If OP_RETURN had more room to store information, that would be a positive change for Counterparty, other similar projects, and would improve the long term health of the Bitcoin blockchain.
full member
Activity: 238
Merit: 100
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/


what is the outcome for the protocol?

explain to me like I am five Smiley
The protocol will continue to work. However, the solution we are using currently is not an elegant solution.
hero member
Activity: 742
Merit: 500
Plea to Core Bitcoin Developers regarding OP_RETURN: https://www.counterparty.co/plea-bitcoin-core-development-team/


what is the outcome for the protocol?

explain to me like I am five Smiley
Jump to: