cityglut
|
|
February 07, 2014, 08:05:31 AM |
|
Yes, without escrow, anyone can eat all the sell orders without much cost. Therefore, I suggest 1) add proportional escrow fee in XCP for buy orders. 2) buy orders less than 10 XCP is free from escrow fee, so new users without XCP can still use the exchange. All escrow fee goes to the seller if Btcpay is not sent in time. Otherwise, it goes back to the buyer.
I see one potential problem with the XCP escrow solution: what do we do about honest XCP buyers who want to place limit orders? Unless I am mistaken, under this system if I place a resting limit order to buy XCP and turn off my computer, I run the risk of an XCP seller hitting my bid and collecting the escrowed XCP, since I am not around to execute a BTCPay. This would really discourage XCP buyers from placing resting orders. Maybe this is not a bad thing though. Since XCP is not built for high-frequency trading there is nothing wrong with a 1-sided order book reflecting the asymmetry in XCP/BTC exchange. The XCP/BTC exchange would just resemble Ebay instead of the NYSE. I am not sure how the expire time of BTCPay is set. Is it always set by the XCP sellers? Could the buyer of limit order set it? If it is set by the buyer, then problem solved. How about who put the order first always determine the BTCPay expire time? The expire time of BTCpay is simply the lesser of the two expirations involved in the transaction.
|
|
|
|
mtbitcoin
Legendary
Offline
Activity: 876
Merit: 1000
Etherscan.io
|
|
February 07, 2014, 08:06:36 AM |
|
Yes, without escrow, anyone can eat all the sell orders without much cost. Therefore, I suggest 1) add proportional escrow fee in XCP for buy orders. 2) buy orders less than 10 XCP is free from escrow fee, so new users without XCP can still use the exchange. All escrow fee goes to the seller if Btcpay is not sent in time. Otherwise, it goes back to the buyer.
I see one potential problem with the XCP escrow solution: what do we do about honest XCP buyers who want to place limit orders? Unless I am mistaken, under this system if I place a resting limit order to buy XCP and turn off my computer, I run the risk of an XCP seller hitting my bid and collecting the escrowed XCP, since I am not around to execute a BTCPay. This would really discourage XCP buyers from placing resting orders. Maybe this is not a bad thing though. Since XCP is not built for high-frequency trading there is nothing wrong with a 1-sided order book reflecting the asymmetry in XCP/BTC exchange. The XCP/BTC exchange would just resemble Ebay instead of the NYSE. I am not sure how the expire time of BTCPay is set. Is it always set by the XCP sellers? Could the buyer of limit order set it? If it is set by the buyer, then problem solved. How about who put the order first always determine the BTCPay expire time? I think attempting to solve all issues directly with the protocol would be challenging so early on. However using some of the suggestions stated earlier certain checks can be placed to prevent 'obvious' abuse / trolling issues like the buyer eating up all btc orders with little to no cost. As for the notification when a btcpay is due, some form of client side notification could be developed. Once the GUI clients are out and the information becomes more accessible issues like these become more manageable. There also can be perhaps a minimum allowance limit time limit to allow the buyer to make the payment before the escrow is forfeited in case the expiration period is too short Cheers
|
|
|
|
supersuber
Member
Offline
Activity: 118
Merit: 104
Counterparty
|
|
February 07, 2014, 08:46:01 AM |
|
C:\python32\python.exe C:\counterpartyd_build\run.py order --source=1Fxxxxxx........ --get-quantity=20 --get-asset=BTC --give-quantity=990 --give-asset=XCP --expiration=3000 --fee_required=.0001 then Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 521, i n <module> args.expiration, fee_required, fee_provided, unsigned=args.unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\order.py", line 47, in cre ate return bitcoin.transaction(source, None, None, fee_provided, data, unsigned= unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 371, in transaction transaction = serialise(inputs, destination_output, data_output, change_outp ut, multisig=multisig, source=source, unsigned=unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 217, in serialise secret_exponent, compressed = wif_to_tuple_of_secret_exponent_compressed(pri vate_key_wif, is_test=testnet) TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test' Why TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test'
|
|
|
|
520Bit
|
|
February 07, 2014, 09:12:53 AM |
|
Want to buy:
Counterparty technical lessons. I want to know more about the protocol and would like someone to teach me. Skype is preferred but I can also do Google Hangouts Will pay in bitcoin. Please PM offers which include a short explanation of what you will be teaching me.
Thanks.
You may want to check the tutorial and see how Counterpartyd works first. Remember to install the latest version. https://bitcointalk.org/index.php?topic=451908.msg4975462#msg4975462
|
|
|
|
IamNotSure
|
|
February 07, 2014, 10:06:39 AM |
|
Got this error when trying to do a simple send (run from source, vista x64) Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 496, i n <module> print(unsigned_tx_hex) if args.unsigned else json_print(bitcoin.transmit(uns igned_tx_hex)) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 382, in transmit if input('Confirm? (y/N) ') != 'y': AttributeError: 'UnicodeOutput' object has no attribute 'errors'
|
|
|
|
520Bit
|
|
February 07, 2014, 10:13:17 AM |
|
Got this error when trying to do a simple send (run from source, vista x64) Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 496, i n <module> print(unsigned_tx_hex) if args.unsigned else json_print(bitcoin.transmit(uns igned_tx_hex)) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 382, in transmit if input('Confirm? (y/N) ') != 'y': AttributeError: 'UnicodeOutput' object has no attribute 'errors' Did you update to the latest version? https://github.com/xnova/counterpartyd_build
|
|
|
|
520Bit
|
|
February 07, 2014, 10:23:56 AM |
|
I have another error when I make an order: c:\counterpartyd_build>counterpartyd order --source 1XXX --get-quantity 20 --get-asset BTC --give-quantity 200 --give-asset XCP --expiration 5000 --fee_required 0.01
c:\counterpartyd_build>echo off Transaction (unsigned): 010000000191bc9ad6c118669cb9ef0425310793357f2d42d7e27ad6c040908b1210ce22520200000000ffffffff036c2a0000000000006751410424e0d192e25d4eea9ef8ba4f32d45a025d0aa80172c45580762f3d417b 6eb804d8d7f3e1ee43863a165ae507bbf67b15bf137ed0d5072f1334e489cb6368c14d2120434e5452505254590000000a000000000000000100000004a817c8000000000052ae6c2a0000000000006751410424e0d192e25d4eea9ef8ba4f32d45a025d 0aa80172c45580762f3d417b6eb804d8d7f3e1ee43863a165ae507bbf67b15bf137ed0d5072f1334e489cb6368c14d2116000000000000000077359400138800000000000f42400000000000000000000052ae95847402000000001976a914779835a784 adb00b7cc20357da16ad282c6ff88588ac00000000 Traceback (most recent call last): File "c:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 522, in <module> print(unsigned_tx_hex) if args.unsigned else json_print(bitcoin.transmit(unsigned_tx_hex)) File "c:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 382, in transmit if input('Confirm? (y/N) ') != 'y': AttributeError: 'UnicodeOutput' object has no attribute 'errors' How to fix the 'no attribute 'errors''? My counterpartyd is up-to-date by the way. Also posted here: https://forums.counterparty.co/index.php?topic=22.new#new
|
|
|
|
IamNotSure
|
|
February 07, 2014, 10:24:54 AM |
|
Got this error when trying to do a simple send (run from source, vista x64) Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 496, i n <module> print(unsigned_tx_hex) if args.unsigned else json_print(bitcoin.transmit(uns igned_tx_hex)) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 382, in transmit if input('Confirm? (y/N) ') != 'y': AttributeError: 'UnicodeOutput' object has no attribute 'errors' Did you update to the latest version? https://github.com/xnova/counterpartyd_buildYes, of course (and I got the same error as you when trying to make an order)
|
|
|
|
BitzMD
|
|
February 07, 2014, 11:19:50 AM |
|
[quote autforhor=520Bit link=topic=395761.msg4992441#msg4992441 date=1391764373] Want to buy:
Counterparty technical lessons. I want to know more about the protocol and would like someone to teach me. Skype is preferred but I can also do Google Hangouts Will pay in bitcoin. Please PM offers which include a short explanation of what you will be teaching me.
Thanks.
You may want to check the tutorial and see how Counterpartyd works first. Remember to install the latest version. https://bitcointalk.org/index.php?topic=451908.msg4975462#msg4975462[/quote] Thank you for your considerable effort.
|
|
|
|
BitThink
Legendary
Offline
Activity: 882
Merit: 1000
|
|
February 07, 2014, 11:21:52 AM Last edit: February 07, 2014, 11:38:44 AM by BitThink |
|
Yes, without escrow, anyone can eat all the sell orders without much cost. Therefore, I suggest 1) add proportional escrow fee in XCP for buy orders. 2) buy orders less than 10 XCP is free from escrow fee, so new users without XCP can still use the exchange. All escrow fee goes to the seller if Btcpay is not sent in time. Otherwise, it goes back to the buyer.
I see one potential problem with the XCP escrow solution: what do we do about honest XCP buyers who want to place limit orders? Unless I am mistaken, under this system if I place a resting limit order to buy XCP and turn off my computer, I run the risk of an XCP seller hitting my bid and collecting the escrowed XCP, since I am not around to execute a BTCPay. This would really discourage XCP buyers from placing resting orders. Maybe this is not a bad thing though. Since XCP is not built for high-frequency trading there is nothing wrong with a 1-sided order book reflecting the asymmetry in XCP/BTC exchange. The XCP/BTC exchange would just resemble Ebay instead of the NYSE. I am not sure how the expire time of BTCPay is set. Is it always set by the XCP sellers? Could the buyer of limit order set it? If it is set by the buyer, then problem solved. How about who put the order first always determine the BTCPay expire time? The expire time of BTCpay is simply the lesser of the two expirations involved in the transaction. Thanks. Then it is a little bit more difficult to punish the late buyers since the sellers can attack the buyers by setting a very short expire time. One possible solution is maybe only the one who matches the existing orders needs to put some XCP in escrow. This could prevent someone eat up all sell orders without cost. This solution, however, cannot prevent another kind of manipulation. Say current the lowest sell order is at 0.01. Then I can put a limit buy order 1M XCP @ 0.009999, so that I can ensure nobody can really sell to the bid walls. It seems this kind of attack is arguably less harmful than a big buy orders to eat up all sell orders. Let's think together to see whether there's better solution. Moreover, even checking BTC bandwidth is doable, it cannot prevent the attack. Only put BTC in escrow can avoid this kind of attack completely.
|
|
|
|
PhantomPhreak (OP)
Sr. Member
Offline
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
|
|
February 07, 2014, 12:07:02 PM |
|
C:\python32\python.exe C:\counterpartyd_build\run.py order --source=1Fxxxxxx........ --get-quantity=20 --get-asset=BTC --give-quantity=990 --give-asset=XCP --expiration=3000 --fee_required=.0001 then Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 521, i n <module> args.expiration, fee_required, fee_provided, unsigned=args.unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\order.py", line 47, in cre ate return bitcoin.transaction(source, None, None, fee_provided, data, unsigned= unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 371, in transaction transaction = serialise(inputs, destination_output, data_output, change_outp ut, multisig=multisig, source=source, unsigned=unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 217, in serialise secret_exponent, compressed = wif_to_tuple_of_secret_exponent_compressed(pri vate_key_wif, is_test=testnet) TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test' Why TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test' You're running an old version of pycoin.
|
|
|
|
PhantomPhreak (OP)
Sr. Member
Offline
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
|
|
February 07, 2014, 12:14:18 PM |
|
Yes, without escrow, anyone can eat all the sell orders without much cost. Therefore, I suggest 1) add proportional escrow fee in XCP for buy orders. 2) buy orders less than 10 XCP is free from escrow fee, so new users without XCP can still use the exchange. All escrow fee goes to the seller if Btcpay is not sent in time. Otherwise, it goes back to the buyer.
I see one potential problem with the XCP escrow solution: what do we do about honest XCP buyers who want to place limit orders? Unless I am mistaken, under this system if I place a resting limit order to buy XCP and turn off my computer, I run the risk of an XCP seller hitting my bid and collecting the escrowed XCP, since I am not around to execute a BTCPay. This would really discourage XCP buyers from placing resting orders. Maybe this is not a bad thing though. Since XCP is not built for high-frequency trading there is nothing wrong with a 1-sided order book reflecting the asymmetry in XCP/BTC exchange. The XCP/BTC exchange would just resemble Ebay instead of the NYSE. I am not sure how the expire time of BTCPay is set. Is it always set by the XCP sellers? Could the buyer of limit order set it? If it is set by the buyer, then problem solved. How about who put the order first always determine the BTCPay expire time? The expire time of BTCpay is simply the lesser of the two expirations involved in the transaction. Thanks. Then it is a little bit more difficult to punish the late buyers since the sellers can attack the buyers by setting a very short expire time. One possible solution is maybe only the one who matches the existing orders needs to put some XCP in escrow. This could prevent someone eat up all sell orders without cost. This solution, however, cannot prevent another kind of manipulation. Say current the lowest sell order is at 0.01. Then I can put a limit buy order 1M XCP @ 0.009999, so that I can ensure nobody can really sell to the bid walls. It seems this kind of attack is arguably less harmful than a big buy orders to eat up all sell orders. Let's think together to see whether there's better solution. Moreover, even checking BTC bandwidth is doable, it cannot prevent the attack. Only put BTC in escrow can avoid this kind of attack completely. The only reason that all of those sell orders got eaten is that nobody set a reasonable fee_required. The current fee system is somewhat inefficient, though. If the time allowed for a btcpay were to be shortened, which would be done simply so that the market is more responsive, then it would be made a fixed length, e.g. of 10 blocks. I can't imagine why a seller would care about how this value is set, as long as it's long enough.
|
|
|
|
JahPowerBit
Sr. Member
Offline
Activity: 335
Merit: 255
Counterparty Developer
|
|
February 07, 2014, 12:39:47 PM |
|
It is possible to set two expire time ?
1) expire time for the order 2) expire time for the btcpay
Thks
|
|
|
|
PhantomPhreak (OP)
Sr. Member
Offline
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
|
|
February 07, 2014, 12:45:20 PM |
|
It is possible to set two expire time ?
1) expire time for the order 2) expire time for the btcpay
Thks
I don't think that the btcpay expire time would ever need to float.
|
|
|
|
rioshock2
Newbie
Offline
Activity: 26
Merit: 0
|
|
February 07, 2014, 01:15:56 PM |
|
It is possible to set two expire time ?
1) expire time for the order 2) expire time for the btcpay
Thks
I don't think that the btcpay expire time would ever need to float. Why?
|
|
|
|
PhantomPhreak (OP)
Sr. Member
Offline
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
|
|
February 07, 2014, 02:01:16 PM |
|
It is possible to set two expire time ?
1) expire time for the order 2) expire time for the btcpay
Thks
I don't think that the btcpay expire time would ever need to float. Why? Because the time should be as low as possible, and the minimum time is the same across trades.
|
|
|
|
JahPowerBit
Sr. Member
Offline
Activity: 335
Merit: 255
Counterparty Developer
|
|
February 07, 2014, 02:30:14 PM |
|
understood thks. So in futur versions, btcpay expire time will be 10 blocks ?
|
|
|
|
PhantomPhreak (OP)
Sr. Member
Offline
Activity: 476
Merit: 300
Counterparty Chief Scientist and Co-Founder
|
|
February 07, 2014, 03:00:29 PM |
|
understood thks. So in futur versions, btcpay expire time will be 10 blocks ?
I'm thinking about it.
|
|
|
|
xnova
Sr. Member
Offline
Activity: 390
Merit: 254
Counterparty Developer
|
|
February 07, 2014, 03:06:25 PM |
|
I have another error when I make an order: c:\counterpartyd_build>counterpartyd order --source 1XXX --get-quantity 20 --get-asset BTC --give-quantity 200 --give-asset XCP --expiration 5000 --fee_required 0.01
c:\counterpartyd_build>echo off Transaction (unsigned): 010000000191bc9ad6c118669cb9ef0425310793357f2d42d7e27ad6c040908b1210ce22520200000000ffffffff036c2a0000000000006751410424e0d192e25d4eea9ef8ba4f32d45a025d0aa80172c45580762f3d417b 6eb804d8d7f3e1ee43863a165ae507bbf67b15bf137ed0d5072f1334e489cb6368c14d2120434e5452505254590000000a000000000000000100000004a817c8000000000052ae6c2a0000000000006751410424e0d192e25d4eea9ef8ba4f32d45a025d 0aa80172c45580762f3d417b6eb804d8d7f3e1ee43863a165ae507bbf67b15bf137ed0d5072f1334e489cb6368c14d2116000000000000000077359400138800000000000f42400000000000000000000052ae95847402000000001976a914779835a784 adb00b7cc20357da16ad282c6ff88588ac00000000 Traceback (most recent call last): File "c:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 522, in <module> print(unsigned_tx_hex) if args.unsigned else json_print(bitcoin.transmit(unsigned_tx_hex)) File "c:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 382, in transmit if input('Confirm? (y/N) ') != 'y': AttributeError: 'UnicodeOutput' object has no attribute 'errors' How to fix the 'no attribute 'errors''? My counterpartyd is up-to-date by the way. Also posted here: https://forums.counterparty.co/index.php?topic=22.new#newshould be fixed, please update from git.
|
|
|
|
xnova
Sr. Member
Offline
Activity: 390
Merit: 254
Counterparty Developer
|
|
February 07, 2014, 03:08:22 PM |
|
C:\python32\python.exe C:\counterpartyd_build\run.py order --source=1Fxxxxxx........ --get-quantity=20 --get-asset=BTC --give-quantity=990 --give-asset=XCP --expiration=3000 --fee_required=.0001 then Traceback (most recent call last): File "C:\counterpartyd_build\dist\counterpartyd\counterpartyd.py", line 521, i n <module> args.expiration, fee_required, fee_provided, unsigned=args.unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\order.py", line 47, in cre ate return bitcoin.transaction(source, None, None, fee_provided, data, unsigned= unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 371, in transaction transaction = serialise(inputs, destination_output, data_output, change_outp ut, multisig=multisig, source=source, unsigned=unsigned) File "C:\counterpartyd_build\dist\counterpartyd\lib\bitcoin.py", line 217, in serialise secret_exponent, compressed = wif_to_tuple_of_secret_exponent_compressed(pri vate_key_wif, is_test=testnet) TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test' Why TypeError: wif_to_tuple_of_secret_exponent_compressed() got an unexpected keywor d argument 'is_test' You're running an old version of pycoin. Easiest way to fix this, if you're using the build system, is to just rerun setup.py from a checkout of the newest code.
|
|
|
|
|