-
Notifications
You must be signed in to change notification settings - Fork 679
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Atlas] Never give up trying to replicate attachments #3270
Comments
Hey @rafaelcr, Attachment replication is best-effort, because attachment data is not consensus-critical. The node can be configured to track different contracts for attachment events, which are generated through The Atlas system could be made more reliable (e.g. the one in Stacks 1.0 never gave up, and we could make it so that this one never gives up either), but to answer your immediate question, the attachment replication system is very much best-effort, and there is no guarantee of replication like there is for blocks and microblocks. |
Thanks for the quick response @jcnelson 🤝 . That is very informative (cc @CharlieC3 ) Follow up: is there currently a way for us to request an attachment (or a zonefile) if we did not see it for some time after we receive a |
Sure -- if you know the node that received it, you can query it with |
Appreciate it @jcnelson , closing this as my question was answered |
Going to reopen this. I think it's important to make sure that the Atlas state-machine always re-tries attachments (even if infrequently) in order to handle these kinds of corner cases. A good acceptance test would be to see if we can instantiate a Stacks node, blow away its Atlas attachments, and verify that it's able to eventually re-download all of them. |
@jcnelson Thank you! Albeit not consensus-critical, missing attachments definitely impact the developer experience. |
Hey all, as this is creating issues for a Sigle user, I was wondering if you have any idea of an ETA for this one? |
Sometime after Stacks 2.1 ships, at the earliest. |
Okay, thanks |
It seems that some zonefile where lost in the past few days. We had many Sigle users that had working blog and are now unable to access them as the API is returning an empty zonefile entry. |
More reports from Sigle related to this:
I know @lgalabru and @jbencin have been working on improving Atlas. Can this issue be moved out of the icebox and into development? For example these PRs are at least related: |
I've been looking over the Atlas code and I think this behavoir is controlled by A better solution might be to attempt to download an attachment frequently at first, and retry with exponentially increasing delay after each failure, up to some maximum limit (like 24 hours), but never stop trying. @CharlieC3 and @zone117x, can you try the proposed workaround and let me know if it works? |
Hey all, just wanted to see if any progress has been made on that one as this is still affecting users on Sigle side. |
@pradel See my comment above. PR #3618 has added config options that should fix this, and has been approved and merged into Clone the projectgit clone git@github.com:stacks-network/stacks-blockchain.git
cd stacks-blockchain
git checkout 2.4.0.0.0 Edit the default configOpen AtlasConfig {
contracts,
attachments_max_size: 1_048_576,
max_uninstantiated_attachments: 10_000,
uninstantiated_attachments_expire_after: 3_600,
unresolved_attachment_instances_expire_after: u32::MAX,
genesis_attachments: None,
}
Build the
|
Is there any reason why users are currently experiencing this issue much more frequently? (not just related to subdomains but regular names too) Bilal from btc.us found that out of the 28 successful transactions (between the 15th and 20th of Feb.) Example https://stacks-node-api.mainnet.stacks.co/v1/names/franek.btc/zonefile results in Another one like it here https://stacks-node-api.mainnet.stacks.co/v1/names/cryptostonks.btc/zonefile several attempts from the user to get a zonefile added. @jcnelson can this fix be included in the next version? |
It doesn't get picked up by the api, 4 attempts in 2 days: name-register |
i've been trying for days to update my domain at btc.us and the changes are never reflected. specifically, i'm trying to add a bitcoin address and redirect url i've tried on my other domain names to do same update (add btc address and redirect url) and i don't know what i'm doing wrong. please help. thank you. |
Hi, I experienced an error as well. Tried with 2 txns to update my lightning wallet and btc wallet connected to my .btc address (colinpower.btc), but it did not work either time. Appreciate your help looking into this! I'm very excited to use my .btc address. |
per tx however after that tx confirmed,
As requested by the banner on btc.us, I'm adding my situation comment. |
is there any solution to this? I am facing similar issue |
Some clarity on the future of BNS would be helpful. Does BNS have a Product Owner? If not, why not? Who is driving development? How is orange domains going to fit in? Where's the roadmap? I get that there are other priorities, but having no communication on the roadmap and ongoing open issues is really detrimental to a potential key part of the ecosystem. |
Hey! Appreciate the flagging @dantrevino - all on the same team with the same desire to see BNS have more functionality. OD is absolutely a stakeholder in BNS and an update will be shared shortly in terms of the ongoing efforts there; nothing is happening without community participation. I'd also love to learn more about what you're building on BNS (and others on this thread too), would be great to have a public call or spaces where we can all meet soon; I'll take that as an action item on my end over the next few weeks! 🙂 |
@314159265359879 do we know which Stacks node btc.us is using to broadcast its BNS transactions? I'm in the process of getting familiar with the Atlas code to understand how the attachment flow works and I suspect there are other issues that could be getting in the way of attachment replication. For example, I believe Could they try this on the relevant Stacks node to see if UX improves? If they use Hiro nodes I can coordinate this change on our end ASAP to see if that works. |
@rafaelcr I will forward this to someone who knows more. |
@rafaelcr btc.us uses @stacks/connect to broadcast all its transactions, so I'm not exactly sure what stacks node is in use. Additionally we do not provide a Happy to coordinate on any experiments that need to be run. |
@gina Abrams ***@***.***> my user case is related to wallet
functionality. Ultimately I'm interested in how/where profile data will be
found.
Typically profile and bns are two different things, but we're *setting*
some metadata related to nostr and lightning in BTC.us.
So I would like to understand how/if profiles will be managed in the
future? StackerDB? Gaia? Somewhere else? Are all update functions in the
@stacks/profile lib? Or are updates required?
Dan
…On Thu, Apr 18, 2024, 12:03 PM Gina Abrams ***@***.***> wrote:
Hey! Appreciate the flagging @dantrevino <https://github.com/dantrevino>
- all on the same team with the same desire to see BNS have more
functionality. OD is absolutely a stakeholder in BNS and an update will be
shared shortly in terms of the ongoing efforts there; nothing is happening
without community participation. I'd also love to learn more about what
you're building on BNS (and others on this thread too), would be great to
have a public call or spaces where we can all meet soon; I'll take that as
an action item on my end over the next few weeks! 🙂
—
Reply to this email directly, view it on GitHub
<#3270 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAB4OUBQL2MSZ3NVXZ6BIDY574HFAVCNFSM6AAAAAAQBPE57GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRUGU3TONZQGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
At Paradigma we have launched https://ubid.app that empowers web applications with BNS names. It let's you use your BNS name as user name, and defining a password to login to a web2 app. It uses the OpenID Connect protocol defined as base standard for web apps in many countries and continents of the world for interoperability. The defined password never leaves the user browser making it one safest's solution on the world! |
We use intensively the zonefile with the url definition that points to the profile.json file. Phillip.xck.app |
I think the fundamental issue here is that Atlas attachment replication itself is pretty anemic as built. Attachments are only ever posted to the node by the Perhaps after Nakamoto ships, I'll have time to build Atlas v2. |
Can someone here give a manual workaround to this problem until the Devs can work out a solution. Appreciate if anyone can drill this down so even a grandmother can do this. COPILOT AI JUST SUGGESTED THIS SOLUTION: Yes, you can manually update the zone file for your BNS domain and bypass the registrar by directly interacting with the blockchain. Here’s how you can do it: Steps to Manually Update the Zone File: Sign the Transaction: Use your wallet to sign a transaction that includes the updated zone file. This typically involves creating a name-update transaction with the new zone file data. Install Stacks CLI: Follow the instructions to install the Stacks CLI from the Stacks documentation. |
While building Dots, I ran into this issue, and I was able to get pretty solidly consistent zonefile propagation by doing this. Instead of just broadcasting the tx to one URL, I basically did:
This is kinda slow but you can add some heuristics to cache and only send to some nodes. Some requests will fail (ie maybe that node doesn't have a public RPC port), which is fine. This is just a "take a bunch of shots and enough of them will hit" approach. cc @Blingman99 for asking about a workaround |
We've recently had an issue reported in the Hiro API where a subdomain which was correctly registered as a
name-update
to BNS does not appear in our endpoint responses, redirecting the user to the Stacks registrar when querying for it.Upon further investigation, I discovered that we did not receive the attachment message (
/attachments/new
RPC) that would've contained the updated zonefile with the new subdomain only in some of our API instances. In those cases, the API only registered the update transaction but never the subdomain.Fortunately, the API instance that is currently live did receive that attachment and is displaying the name correctly, but we'd like to make sure we're covering all of our bases for processing attachments.
This brings me to my question:
Are attachments guaranteed to be transmitted by nodes? Or should we assume they are 'best effort' messages similar to mempool updates?
Thanks
The text was updated successfully, but these errors were encountered: