- 14 January 2024 (319 messages)
-
-
We are collection #4 is you check Pepe.wtf right now (reality position is like #16/17)
-
-
For my stuff It’s intentionally named that way so as to poke fun and meme on the state of the crypto markets but yeh might want to brand that thing diffeeently here :)
-
-
oh @B0BSmith was just teasing! honey potting is a a type of entrapment
-
but i get what you mean!
-
I have this proposal.....
https://blocklack.com/counter-party/Counter Party - BLOCKLACK.comCounterParty Proposal for Enhancing and Streamlining the Counterparty Protocol and Architecture Start Now BITCOIN Blocklack® is a company based in Barcelona, with more than 11 years of expertise in IT,...
-
It's the most I can do to improve the protocol.....
At the momento I will only focus on the counterpartydb api rest. and deliver it to the community -
-
is rest api with GET faster than POST?
-
-
-
It's the same, the only thing that changes is the way you request the information... in get the query is in the url, in post it is done directly in the open HTTP channel and is sent as body.
-
there is no difference in performance
-
OK so they equally Performant .. got it
-
The only limitation is that in GET the urls have a byte limit.
-
thank you for clarifying this for me
-
-
I recommend using POST instead of get.
-
I have thought about posting a card that I have from 11 years ago as a method of funding.... but I do not know. My business is very profitable and I don't want to give the impression that we are selling a security, to help the CP community.
-
good news! literally just fetching the block from bitcoind is a significant chunk of the block parsing time. we can get rid of that completely be fetching them in a separate thread
-
Super appreciative, just know I will try to keep it low key and not directly engage (much) with the messaging around whatever funds you want to contribute.
TLDR I don’t think I will ever ask directly like is seen too much around. People can find my addresses -
Joined.
-
Small edit
-
-
-
-
-
-
-
-
-
async and multithread are not the same as parallelization, which is what really gives the expected performance
-
Parallelization can be achieved if we use rabbitmq or some other service similar that starts the thread separately.
-
-
Rabbitmq with celery.
-
Or just a daemon...
-
that starts the blockparser.py separately from the api.py
-
yeah I'm seeing a significant amount of time spent on deserialization... but that doesn't matter at all during catchup at least
-
This where I think PeterTods lib may be faster ? .. it just seems to load blocks quicker
-
here's a flame graph for the parsing of some recent blocks with no counterparty transactions
-
Cant open.
-
The pter tod library is fast deserializing because it uses ctypes in c
in the most critical parts of the architecture
https://github.com/petertodd/python-bitcoinlib/blob/master/bitcoin/core/key.pypython-bitcoinlib/bitcoin/core/key.py at master · petertodd/python-bitcoinlibPython3 library providing an easy interface to the Bitcoin data structures and protocol. - petertodd/python-bitcoinlib
-
very cool tool didnt know it was looking for a profiling tool like this some time ago, py-spy cool thanks for sharing
-
-
can you send them in png?
-
Thanks bro
-
til ty .. I just tried it and was blown away how much quicker it is
-
-
Oki ser
-
is it possible to have memory profiling?
-
Is there a python library to obtain it?
-
-
was 9 years ago I discovered this .. on a rasberry pi2
-
Ling time
-
-
-
Namecoin
-
🤔
-
-
-
The OP_Return Wars of 2014 – Dapps Vs Bitcoin Transactions
Abstract: In this piece we explore why Dapps are typically built on Ethereum rather than Bitcoin, which takes us all the way back to March 2014. We examine a debate about whether and how a Dapp pro…
-
It is preferred, I like it.
-
-
this is awesome, Adam!
-
Ouziel's first PR is a doozy 😂 https://github.com/CounterpartyXCP/counterparty-lib/pull/1322[WIP] Python 3.11 + Hatch + Latest version for all dependencies + Fix tests by ouziel-slama · Pull Request #1322 · CounterpartyXCP/counterparty-lib
Eventually pyproject.toml will completely replace setup.py. It is already usable with hatch: $ hatch run pytest counterpartylib/test/ --skiptestbook=all
-
WOW
-
-
don't think so! not sure if telegram is his thing.
-
-
i am not sure what counterparty's gh etiquette is but i'd very much think we'd like to move some dev comms over there?? @teysol what do you think
-
@uanbtc here is my first draft of the counterwallet/counterblock bounty - https://gist.github.com/robby-dermody/85ca3125ee1ce96cf1e780f50819c976 — I had some unexpected family things come up today and wasn't able to give it a good sanity check, but I will get to that tomorrow. Let me know if you'd like to suggest any changescounterblock-bounty
counterblock-bounty. GitHub Gist: instantly share code, notes, and snippets.
-
-
good question. I think it'll evolve over time. in general, I'd probably encourage people to use GitHub issues for direct comment on particular concrete proposals. more general, open-ended discussion can happen here.
as already discussed a bit, I also suggest we move in the direction of limiting CIPs specifically to comments on concrete proposals non-trivial protocol changes -
-
-
i don't disagree, would just request that people maintain the same level of cordiality in this chat as has been demonstrated since I joined. not everyone likes shitposting and trolling as much as yours truly, but still good to have them in the chat for dev purposes
-
@krostue don't mean to usurp chat groundrules, sorry
-
A challenge indeed! Is a good amount of time, so I don’t have any suggestions is ok!
-
hah, well, he just needs to avoid the main Counterparty chat. this channel seems pretty on-topic and drama free. worth posing to him at least, I'd think
-
Great, feel free to ping me as questions come up. thank you again!
-
yeah, i asked him. if he's up for it will add him here!
-
shitposting for general chat. and only devs here. understood
-
I don't see it like that at all.
the previous message was something that was implicit afaik. glad for it to be explicit.
btw many of you have titles in this room now, and adminship for some who should have it.
If anyone who is actively working to help restore counterparty on GitHub or are interested in users (who are here reading silently) contacting them, please let me know via PM or here that you would like the "dev" title added.
Also, on this topic. As stated, there is no room for advertising/project pushing in this room. yet, I believe it "fair use" and a good concession, to utilize the title for recognition. If you are a STAMPS dev, or would like another word next to dev title, I would be happy to add that. (reminds me of signatures on bct) -
None
- 15 January 2024 (104 messages)
-
Me wondering what chiefsamyaza’s title will be lol. On a serious note it’s very inspiring to see all the buzz in here. Makes it very inspiring to contribute to CP! Looking forward to getting back from a quick vacation to dive into some of the work already progressing! Nice work guys
-
mmmm dont uderstand this... so if i triggerrollback 824000 it takes a reparse just until that block and nothing more?
-
-
-
-
-
-
-
-
Anyone have a verified xcp dispenser list?
-
move this to the general group.
-
Please
-
-
Joined thanks.
-
@uanbtc looks like your split xcpdev this morning, am I good to start some work on xcpdev-api?
-
Joined.
-
Yep is done! Go ahead
-
Kk trying to move my updates to the new branch. Swagger doesn’t like me though.
-
Seems like some setup config is wrong and the swagger-output.json isn’t being generated when index.json is run
-
On the previous branch I was testing by dropping a cp db in and running node index.js and it was coming up correctly
-
-
Kk perhaps I messed something up. Ill let you know if I can’t get it fixed
-
And I kept the old branch: ja/exchain_apis_old. But don’t do more commits on it, is only for reference
And xcpdev-genesis still has all the work as you left it, so you can also use it as a reference. But this one will be reverted to an old commit soon -
Keep the one you have, but try a new one from scratch. Will be much easier than trying to update the old project
-
Kk fresh project npm start did the trick
-
J Loone Brickens 🧱 (@wasthatawolf) on X
A brief history of Counterparty events starting Nov 2023... (🧵) - After the release of v9.61, J-Dog handed over lead maintainer duties to three devs... me, @shannonNullCode, and @jp_janssen. We accepted this role so J-Dog could offload the weight of this responsibility.
-
@uanbtc does it make sense to try and recreate the exact data on the xchain api?
Maybe it’s a better idea to get the info the user would want with the query and not necessarily have a 1 to 1 xchain replacement. Getting price data in these various places would be make some heavy queries. -
The recent dex/dispenser data can be retrieve with another query when needed?
-
-
-
Yeah that’s what I’m saying, trying to no have joins in these queries
-
Im not a database person so I don’t really know much about that anyways.
-
Just trying to get a functional first cut some queries in there
-
I would host the good DB player version 😆
Which can be totally based on the FULL replacement (but inefficient) version. I’ll do my adjustments on top of whatever you build -
-
Yes but it will take time to build all the queries exactly the same as exchain, also maybe for the 100% replacement API in the long term maybe is cool doing it in rust as is proposing and building here by @Jpcryptos was testing and retrieving the headers data of 50k blocks was done in 0.7 s
-
And is structured to be freewallet-specific compatible. Every path that starts with /api/ to be freewallet compatible. The rest (that don’t start with /api/) are the ones used by xcp.dev
-
I don’t think it would take THAT long… we slowed down mainly after realizing how damaging the queries were
But the code can have them. And then we can identify the worse heavy ones and be disabled with a config -
Well that's true
-
I have improved the query algorithm using SQL instead of DSL.
-
-
100k blocks 193ms. 46.25 MB of data
-
-
0.1 sec jus getting 100k blocks
-
Branch feature/dynamic-filtering.
-
cool ser going to check it
-
📢 Ouziel is an absolute machine. Tests are all passing! https://github.com/CounterpartyXCP/counterparty-lib/pull/1322[WIP] Python 3.11 + Hatch + Latest version for all dependencies + Fix tests by ouziel-slama · Pull Request #1322 · CounterpartyXCP/counterparty-lib
Eventually pyproject.toml will completely replace setup.py. It is already usable with hatch: $ hatch run pytest counterpartylib/test/ --skiptestbook=all
-
wow that was fast
-
I've never met another developer with Ouziel's endurance.
-
I'm working on making it compatible with counterparty-lib filtering
-
Awesome
-
Added debit and dispensers. Also.
-
I only have to add the order and the order_by.
-
@XJA77 I'm still working on compatibility, that's why I haven't moved it to main.
-
-
ohhhhhh yes!!!
-
@XJA77 would be super helpful if you documented this whole adventure
-
-
-
well if message hashes are still out of sync then may be best to hold off
-
-
-
oh for sure big progress 🙂
-
great work.
-
from my pc lol now he is happy at the end temperatures down of 72ºC
-
fyi, in case people (understandably) don't read the main chat: https://twitter.com/CounterpartyXCP/status/1747000806417576089#mCounterparty (@CounterpartyXCP) on X
*ANN* Adam Krellenstein (@agkrellenstein), creator and co-founder of Counterparty, will be re-joining Juan, @wasthatawolf, and @jp_janssen as a maintainer of the protocol ref. implementation 🎉 A special thanks to @jdogresorg for his work as lead maintainer these past years! 🙏
-
@uanbtc sorry for not @ing you :-/, was just a stupid timing error on my and adam's part.
-
-
lol I don't use twitter, just sharing here. If there's a way to rectify will make sure it is rectified!
-
I beg to differ .. you are great influence
-
I replied to add you
-
what Juan is not aware yet is that he is gonna be mentioned a time... or two... from now on
-
-
pretty soon you'll have so many followers people will be paying you to pump their shitcoins ❤️🔥
-
That can happen with a reorg, just find where they diverge
-
-
Yeah I agree but that will explain the divergence
-
Devon added the undo table for reorgs a few years back and it actually works really well, ignoring the message hash issue lol
-
-
Basically allows a much simpler unwinding of one block automatically if a reorg is detected
-
Or however many blocks it takes although I don’t think we’ve had a multi block reorg in a long time
-
Have had multiple one block reorgs since ordinals started to become popular
-
-
-
It may have been, Devon was pretty thorough
-
-
-
As long as reorg triggers it, it’s something you want to happen immediately, want to get off the orphan block asap
-
-
It’s a feature of SQLite I believe
-
Would need to investigate more but it is something that’s been running for probly better part of 7 years and works well to keep nodes from crashing
-
But I agree should have a better way to indicate a reorg happened than a message since any nodes after wouldn’t have that message creating the hash issue
-
why were nodes crashing?
-
hm, I don't understand...
-
Reorg
-
Required manual restart
-
-
-
-
Sure, maybe not the ideal solution but it has a history of working well, certainly not opposed to something else
-
-
Folks, will getting counterblock back into shape obviate this issue? https://github.com/CounterpartyXCP/counterparty-lib/issues/1299Expand API to Support Block Explorers · Issue #1299 · CounterpartyXCP/counterparty-lib
It seems that right now, if you want to create even a simple Counterparty block explorer, you first have to implement a lot of extra functionality in the backend. xchain.io has done this (closed-so...
-
maybe wrong channel, lmk if I should repost in general dev chat...
-
@robbyrbd pinging you as you're the counterblock godfather and may be able to weigh in on it...
- 16 January 2024 (318 messages)
-
in the absence of a comprehensive expansion of counterparty's base API, sure, counterblock's API already provides some (although not all) of the functionality that would be useful to a block explorer. moreover, it can be extended to provide additional parsing and API-level functionality by the creation of additional runtime modules (basically just a python module with certain hooks that is specified in its config file and loaded at runtime)
-
-
here's an example of a module which adds a get_transaction_stats API method to it, along with the associated message feed processing, rollback processing, etc: https://github.com/CounterpartyXCP/counterblock/blob/master/counterblock/lib/modules/transaction_stats.pycounterblock/counterblock/lib/modules/transaction_stats.py at master · CounterpartyXCP/counterblock
Provides extended API services to Counterwallet, as well as Counterparty 3rd-party applications - CounterpartyXCP/counterblock
-
Another problem I found is that the some database table does not have primary keys, which sloww the SQL querys call time.
-
-
New release.
-
huge ser, works pretty fast, very interesting
-
retrieve first 1M issuances in 3.5 seconds wow 168 MB
-
I need to set a size limit.
-
Please note that these are not like a downloads. They are structured database queries.
-
-
-
I have had on ymy list to dive in XCP and BTC dev more for a bit and this is the year that I'm starting. If I wanted to get started what is the best resource to work to get a node up and running and are there any other places that could help me get up to speed to start doing code wwalkthrus etc. I know this might not be the correct place. I was going to look to run a local node simular to how I'm running my ORD node.
-
Some may not know me, but I'm an old C# dev and have working with MS stack (C#, SQL Server) for a long time but that is not particulay helpful.
-
-
-
this is the repo to use: https://github.com/CounterpartyXCP/counterparty-libGitHub - CounterpartyXCP/counterparty-lib
Contribute to CounterpartyXCP/counterparty-lib development by creating an account on GitHub.
-
-
ya I know lots of changes but would love to be reviewing the code so that at somepoint I can add value.
-
-
Not exactly protocol dev but important for preserving the "art layer" on top of Counterparty, and for building explorers:
Torrent with Counterparty images from xchain, imgur, easyasset etc.
https://jpjanssen.com/counterparty-image-archives/ -
looked further into this... isn't this sort of deblockchain-ifying the blockchain?
-
Also, read thru the dispensers stuff... am I misunderstanding, or is it the case that if two parties send BTC to a dispenser in the same block, one of them (presumably the one with the lower fee), will lose their BTC?
-
-
Yes but worse. Rugspenser scripts use RBF to frontrun.
-
omg
-
I don't understand... why are people fine with this lol
-
no, the past has already happened, unwinding blocks doesn’t break any sort of blockchain ethos
-
-
It “worked” when the community was small and you could request a refund from the seller (and usually get it). As the community has grown, we’ve seen more and more malicious actors exploiting this.
-
its a tradeoff
-
it opened up a lot of liquidity too, millions of dollars have passed through dispensers that otherwise wouldnt have
-
It’s definitely the primary method of trade for counterparty
-
@herpenstein could PSBT supersede dispensers and mitigate the counterparty risk?
-
s/mitigate/eliminate
-
PSBTs wont work unless we can bind assets to utxos
-
sorry, yes, that was implicit. was about to edit.
-
tbc by 'people' I meant 'users' not 'developers'.
-
thats why theres a list of “trusted” dispensers
-
and artists use it as a way to sell their tokens
-
so not really a risk in that regard
-
got it, makes sense.
-
but we all recognize its a bastardized btcpay lol
-
I wasn't gonna say anything lol
-
But in theory could PSBT + binding assets to UTXOs supersede both dispensers and BTCPay?
-
yea for sure, but psbts also have their own drawbacks, nothing is perfect
-
Sure, understood, but are those drawbacks around counterparty risk or UX?
-
if you want to “remove” a psbt sell offer you have to spend the utxo
-
_ah_
-
its not a showstopper, just important to identify and be aware of so risk can be mitigated
-
and i think binding assets to utxos actually enables more interesting things such as “moving” assets off of counterparty entirely
-
it creates a sort of two way peg system
-
once your asset enters the utxo you’ve sort of locked in the block height and counterparty version until you return it back to the platform
-
in that way users can avoid fork drama, future updates they may not agree with, etc
-
this was the impetus for my proposal to integrate ordinal theory into counterparty
-
yeah that's really neat. I understand I may be in the minority but I do think that the interoperability between a native protocol and a (much bigger) external protocol can deprive the former of oxygen if it's not sticky, so again, I do think that coming up with a more comprehensive gas system would be, if not a precondition of such interoperability, certainly a very good thing to have.
-
Ordinal Envelopes
An ordinal envelope is a mechanism that allows Counterparty assets to be moved into and out of an individual satoshi via its Ordinal number. From a technical perspective, this implementation is fairly straightforward. The challenge is convincing the Counterparty community that the rewards of integrating ord outweigh the potential risk to long term stability of the platform. I’m writing this post to eventually publish as a CIP so will keep the same format for portability… Abstract Ordinal nu...
-
ordinal theory actually fits very well in between counterparty and bitcoin
-
not inscriptions and all the logic around those
-
but simple sat identification
-
I haven't done my homework... breaking the fungability of sats sounds a whole lot like colored coins. Are ordinals just more elegant or is there a deeper difference?
-
ordinals basically “solved” colored coins
-
by pre-coloring every sat
-
_ah_
-
okay.
-
so if you follow the fairly simple sat id method, you create an overlay with which you can do fun things
-
right, takes the onus off of the end-user for doing the 'coloring'. that's neat!
-
as far as breaking fungibility, all it really does is expose the fact that bitcoin isnt really completely fungible in the first place
-
it doesnt really make it worse IMO
-
sure, i didn't mean it negatively.
-
that was the verbiage around colored coins back in the day.
-
yea for sure, just a weak argument
-
and its still the maximalist argument against ordinals
-
lol who cares.
-
the really interesting thing with ordinals is people then using ord to create new metaprotocols like brc-20 etc
-
basically people rediscovering the mastercoin/counterparty model 9 years later lol
-
lol yes, plus VC money
-
yeah but VCs are just reacting right now
-
read this. think i get it. super interesting.
-
so someone spins up some random indexer and they go “shut up and take my money!”
-
but yeah Luke-Jr must be livid lol.
-
hahaha i think thats his neutral state
-
👍
-
Only then could we add more new functionality and features.
-
we can certainly add more features/functionality without it, but what it does bring is interoperability
-
yeah, addtl functionality is independent (but IMO also a good thing)
-
the lowest hanging fruit in bitcoin right now is creating bridges between indexers
-
privacy, smart contracts, safer and dex dispensers
-
sir, counterparty is a smart contract
-
but it is not turing complete.
-
🙂Counterparty has hard-coded smart contracts
-
ok
-
Ethereum touted its Turing-complete smart contract system in order to raise lots of money but I think at this point no one really cares lol
-
Adam ported the EVM to Counterparty back in 2014... the goal isn't just to have a smart contract system, but a *good* one.
-
Although this could bring more functionality, it's just my opinion.
-
Losing insane amounts of money from poorly written smart contracts has amazingly been normalized in crypto, but, like, it should be avoided...
-
I'm not a fan of the evm.
-
But I am a fan of simple contracts MPC and zk-snarks
-
yep for sure. tbf i don't think anyone likes the evm. vitalik designed it when he was 19
-
yeah its crazy how people hand over control of their wallets with a single signature
-
and thats totally normal
-
the marketplace experience with psbts is far superior, just needs to have better mechanisms for “delisting”
-
it's great to see actual progress made
-
some of the new ethereum competitors are quite interesting e.g. but the waters are muddied by their obscene fundraising.
-
-
-
Each archive is a zip file. I notarized these with Counterparty broadcasts.
The problem is the token-image relationship. In most cases there is nothing onchain. Only xchain, or at best imgur or easyasset links, both without hash.
In case xchain, imgur or easyassets shuts down, future block explorers can use these archives as image sources (ideally with explainer). -
Counterparty supports RBF. I use it all the time. I create cntrprty opreturn and send from Electrum.
-
Oh great
-
-
-
-
-
Correct
-
The dispenser is like the vending machine from the early days. Difference being the dispenser is on the protocol level.
For the seller it means no need to run a vending machine script 24/7 and only 1 tx to make N sales.
For the buyer I don't see much benefit. Why so popular? I guess a combo of risk willingness and ignorance. It's not like we've been good at communicating the risk.
The dispenser is no better than sending btc to a stranger and trusting they will send you the goods in return. -
the buyer benefits by only needing a single tx
-
and not waiting for an order match to confirm first
-
Compared to the DEX, yes.
This was vs vending machine. -
the order is filled automatically, theres no waiting for someone to send
-
wait, hold the phone. so you have to trust the person running the dispenser to send you the other token? I thought that token was escrowed by the protocol?
the risk is rather that you will get *front run* by some anonymous buyer -
No you don’t that was his analogy
-
you can get front-run by the seller, basically at no cost
-
Kinda, the front running buyer can be the seller.
-
There used to be a risk the person closes the dispenser on you, although that’s been mitigated with 5 block delay close
-
You have to trust the Seller. But everything IS automated.
Proble are:
1) The Seller can be at the same time the frontrun buyer with other wallet.
The most commun scam IS this one.
2) They can also close the dispenser before the buying TX goes throught. -
The risk right now is just anyone front running you
-
Obviously if it’s the seller it’s cheaper since they receive the funds
-
3) A real buyer empty the dispenser before you... But you can see unconfirmed TX on Xchain.
-
But anyone can front run
-
Since there’s no order match
-
(Bastardized btcpay)
-
-
-
No they are great for artists
-
-
Not everyone has that ability / skill set for one
-
For the seller they don’t need to trust anyone
-
Both the buyer and seller are typically ignorant of the trust assumptions, so it ends up working... most of the time.
-
For the buyer if dispenser owner is known it’s not really a risk either
-
And the biggest difference is no one needs to run an additional piece of software that requires uptime, maintenance, etc
-
I’ve seen a lot of artists use dispensers as their primary sales channel
-
Worth noting it would also be just as easy for them to create a btcpay Tx
-
So if we can get a better ux for btcpay I think many people would use it
-
That’s actually what rarepepewallet was before it was rarepepewallet, it was btcpaymarket
-
My attempt to make btcpay easier
-
BTCpay requires the Bitcoin to be received within 10 blocks. These days with the mempool the way it is, its not unreasonable for even a high fee to not confirm within 10 blocks.
-
-
20 blocks I think
-
But yea btcpay still has its own risks in a high fee environment
-
btcpay works but is clunky and inconsistent when miner fees are high
dispensers work well but require trust in the user running the dispenser.
A utxo based psbt system will alleviate these two issues, but presents a ui/ux issue where after a psbt is signed, if a user wants to cancel the order, they would have to execute a tx to spend the utxo and move their asset into another utxo to invalidate the psbt -
They all have some drawbacks, but I think psbts are the most user friendly and they are deterministic and final in a single tx
-
-
This could be done in the front with a single click isnt It?
-
A utxo based psbt system. 👍
-
To “cancel” all 3 solutions require a txn, so this is in no way unique to PSBT so I wouldn’t really consider this a UX issue for PSBT.
-
I mean it is, but no worse than the current solutions
-
To "cancel" you can buy yourself out of your own dispenser or create a close dispenser tx - both have same end result - dispenser is closed but one means moving btc to dispenser address whereas the other does not
Counterparty was recently updated to allow closing of dispensers from opening address - previously you could only close from the address dispenser was on so a self buyout could be done with a single tx -
-
But my question is that even do there needs to be a cancel in two steps. There could be a button that says "cancel listings" that realizes one if the two options B0B said to cancel It on the back.
-
-
-
-
This IS then a great solution IMO, I dont see any drawbacks then.
-
-
-
Since CP is a metaprotocol, it can make whatever rules it wants. I would think if the utxo is spent by accident, CP can automatically credit the asset back to the users wallet
-
-
But that would require CP to check all utxos in each tx and see if they hold anything.
Perhaps the user would need to execute a redeem tx where they identify the utxo they accidentally spent to get credited. -
-
Then there is @hodlencoinfield idea using the asset like an ordinal instead, which would mean you accidentally send the asset to another user
-
So would have to be from same address only else how do you know its real.
-
Regardless of the final implementation, these issues are solvable at the wallet ui/ux level
-
-
Correct, in that case only you can sign a tx to redeem the asset whose utxo you accidentally spent
-
Can you elaborate? I don’t understand
-
-
Correct. If that were the decided way to do it, there would need to be a CP call to redeem
-
-
Yeah that’s true. Wallets would need to scan utxos and check if they hold any assets before generating a tx
-
-
The advantage with using sat id from ordinal theory is that utxo tracking is already solved
-
ppl use electrum to consolidate counterparty address utxos all the time
-
-
You have to use a separate derivation path for utxo based assets
-
-
You can’t have them all under one address it would be a ux nightmare
-
-
-
Yes but that utxo is tied to an address
-
-
Any update to counterparty that involves binding assets to utxos or sat ids needs to come with a sort of best practices guide
-
As a wallet developer I would simply use a slightly different derivation path for anything utxo or sat based
-
-
This way segregating them from the counterparty address
-
-
100%
-
I like the sat id method for a lot of reasons, one being you can send to sats you don’t control
-
-
-
-
-
Counterparty doesn’t recognize taproot addresses
-
-
TheStampWallet.com has implemented 3address support.
-
-
Hmm… don’t know it well enough to say.
-
-
-
I think there advantages to both the sat and utxo methods for achieving psbts.
For thé sat method, once it’s moved you don’t need another cp tx to transfer it. Ordinals aware infrastructure can very easily implement tracking these. When you want it back in your cp wallet you unbind it and your good. A disadvantage would be this also requires cp to track all sats like ordinals does.
For a utxo based method, the implementation could be very simple. In the send function the utxo to attach the asset to is identified. Then to move that asset to another utxo or another wallet another send function is needed. This type of implementation would be simple as no new functions or additional indexing is needed. The drawback is a user can accidentally burn their asset by spending the utxo without a cp send. This can be mitigated with a function that allows a user to redeem an accidentally spent utxo by proving the tx it was spent in didn’t contain a send -
I think either is a good option, probably needs more pro/con discussion
-
-
Yeah, I agree. perhaps my wording could have been better. I meant a cp transaction. If the asset is in a sat then the tx to send it doesn’t need to be a cp tx, just the tx to bring it back into a cp wallet
-
I haven’t looked into the sat tracking overhead. I get the idea in concept but haven’t explored how it is practically implemented
-
Practically, it can only be implemented by selecting a subset of transactions.
Tracking every single sat of every transaction is a many terabytes (or even more) I heard Casey mention once. And it would be resource intensive. And each day becoming harder as the sat ranges break up and get mixed… -
'sat ranges' in this case means tracking sats across utxos?
-
-
Yeah is the abstraction they use. An optimization instead of literally tracking every single sat atomically
-
Thoughts on atomic swaps?
https://github.com/CounterpartyXCP/cips/discussions/100Atomic Swaps: Advancing Decentralized Asset Exchange and Trust Minimization · CounterpartyXCP/Forum · Discussion #100Introduction: Atomic swaps enable direct peer-to-peer asset exchange between Bitcoin and Counterparty assets without the need for intermediaries or trusted third parties. They utilize Hash Time Loc...
-
is the hash locking done out-of-band?
-
Requires multiple transactions
-
the 'time constraints' provision seems to imply that it's trustless but not riskless.
-
If a both users don’t finalize the tx in the set time, either party can wind up with both assets
-
yep okay that's what i thought.
-
I should have said one party can wind up with both
-
so yeah, looks like three different things: multi-transaction, hash locks are shared out of band (??? is that right), and time constraints means that one party can end up with both assets.
-
requires 2 tx, and need offchain to exchange address first.
-
if we're requiring out-of-band communication anyway it seems like something similar can be achieved in a single tx with multisig.
-
(which unless I'm mistaken could be executed in a single tx without risk and trustlessly)
-
it wouldn't be fancy and natively would be clunky, but a good UI could paper over that.
-
Since cp assets are a metaprotocol, they can’t use layer 1 rules to ensure deterministic transfers in less than 2 transactions
-
Any transfer can be front run rending the slower one invalid.
-
The asset needs to be tied to layer1 rules to use layer1 security guarantees
-
i ran satindex for a while it is certainly not terrabytes
-
but it is a lot of overhead, like 200gb-ish
-
it is fast tho, i had a simple python script that used ord to ID the sat in op_return for the transfer back to counterparty
-
I think I see what you're saying. If I were to construct a bitcoin script that would e.g. transfer XCP from Address A to Address B and transfer BTC from Address B to Address A, and both parties signed that out of band, A could theoretically front-run the transaction with another tx transferring the XCP to another address in his possession (e.g.)
-
the issue i ran into at the time was ord db getting corrupted on reorg
-
@herpenstein is this the attack vector?
-
you could front run it yoursef
-
yep that's what I meant 👍
-
and you could do it with different utxos
-
thats the crux of it, since the counterparty balance is abstracted to an address layer you dont get the benefit of double spend protection
-
In any case it always takes 2 transactions to move a cp asset into a format to use l1 security guarantees.
with the psbt or sat methods, the first tx is simple and done without a countparty -
p2sh only needs 1 tx to move asset to get colab custody according to L1
-
For the end user it’s: Press button, asset is now in a sellable format, press another button, asset is for sale and anyone can buy it
-
Well but this is only tracking the sats for ‘ord’ enveloped taproot transactions, right? Is a very small subset of every single sat of every transaction…
-
Can you elaborate?
-
-
-
-
But you have to know your counterparty
-
-
So if I’m a normie selling my monkey picture, I put it up for sale, someone clicks buy and then I have to log back in to make a multisig?
-
-
-
I was thinking of a brokered multisig application where buyer and seller may not k ow each other
-
Gotcha okay that makes sense
-
-
-
With a broker handling a sale something like that makes sense
-
-
bob, have you written this out in longform somewhere?
-
I’m trying to see if we can figure out a simple way to put cp on a competitive footing with ordinals
-
no mostly just the code to implement it
-
-
-
Who is a frontend dev here?? Would like to know your thoughts: https://github.com/CNTRPRTY/xcpdev-ssr/issues/1Web server stack · Issue #1 · CNTRPRTY/xcpdev-ssr
This is the place to discuss the alternatives to implement the server (side) rendered version of xcpdev. The main requirement is having FULL control of the server. This IS the software being build,...
-
@robbyrbd can do it all.
-
I was trying to help people not get scammed by using a multisig
-
What ur looking for ‘universal’ or ‘isomorphic’ SSR apps - you could go the angular route for this but most will be familiar with react methods - this next.js I have no personal experience with but have looked into and should, so long as you have a node js server it will be able to do the SSR for content if used right, if you aren’t keen on that what people used to do in place. I’m sure there are other methods for react SSR too but I think nextJS is currently most popular for this
-
-
I recommend vue3 has SSR and the learning curve is lower than react or angular.
-
What would be cool on the sever side is perhaps a socket.io push stream of counterparty messages - could enable some for tenders to do some cool stuffs
-
-
nope, it will give you sat tracking for any output
-
Err maybe - like pushing event objects to subscriber groups on the FE client
-
can only speak to frontend framework from a hiring/resourcing perspective: it seems like industry has kind of settled on react (famous last words), so if your goal is maximizing the number of folks who can contribute that may be worth considering.
-
because the method for returning to counterparty is burning that single sat in an op_return output then the range is a single sat
-
It’s very cheap as it’s one message stream and can serve a lot of listeners for little overheads
-
you did this - its on chain right?
-
yes, i did it as performance art lol
-
i’ll find the tx
-
-
i spent a stamp for the same reason
-
J Loone Brickens 🧱 (@wasthatawolf) on X
Yo dawg, I heard you like teleburns. You can now teleburn your ordinals via Counterparty asset issuance.
-
-
yep
-
This is how works in ordinals bc you are transferring SATs but here you could add an end block in the op return teorically where the offer ends right?
-
nice - so ords can be fractionalised like the naka was but without using eth
-
-
Would you recommend adding angular to the list of alternatives to consider??
-
-
React kinda won market share in that battle, but if you like to run a tight ship angular with TS is for sure an option I would worry that maybe it’s overcomplicated at times, react a bit more suited to letting people hit the ground running when entering a project
-
Maybe for a next phase, not doing real-time mempool just to keep the core simple. But maybe something to consider for memepool.wtf ??
-
I was running angular front end with a nestJS server which was kinda cool as nestJS has a lot of angularesqueness to it
-
Oh in your wallet then? I remember I checked very early on so maybe is something they were able to optimize…?
-
Yeh would be a ‘nice to have’ that allows for experimental fun, but also can assist with things like real-time updates on the front end - you are getting to offset polling functions for an event listener which is pretty dope
-
Yeah I’m in the react camp, sorry for angular then lol
-
Oh wow. This is an additional modification to the trx after you create the cp trx from the API I suspect. Will be curious to do on bitcoin core for sure
-
Ehehehe
-
Love this @jp_janssen !
-
Yep right in ord using the —satindex flag
-
Oh I realize we are just talking about the sat ranges. Yeah that is not too bad… for now lol
-
And you could maybe still using account base for reception so you bind to the utxo in the list/send and unbind when you receive it automatically
-
These days I have been reading the xcp.dev code and the the jp tools. However, is there any doc or guide on how to start deserializing a tx to detect if it is a CP transaction?
-
I'd be really grateful.
-
Electrum-Counterparty/decode_tx.html at master · Jpja/Electrum-Counterparty
Generate OP_RETURN for sending Counterparty tokens from Electrum - Jpja/Electrum-Counterparty
-
-
most of you quite reasonably are not in the main dumpster fire chat so I just wanted to share a somewhat off-topic message I posted there in reply to some pretty stubborn trolls: https://t.me/Counterparty_XCP/228323Periwig Reascends in Official Counterparty Chat
I think a lot of people don't know how difficult it is to get a dev culture around a project like Counterparty - no funding and no premine. Before Ethereum almost all dev talent was focused on Bitcoin. I'm super thankful that there's a healthy dev culture around Counterparty and appreciate everyone who's a part of it!
-
TLDR appreciate all the devs working on Counterparty. Thanks!