Megathread: BNS upgrade discussion

Thanks so much @setpato and everyone else that’s worked on this!

On first pass this looks really great and address most of the major issues.

I’ve filed a few specific issues I’ve found from my brief code review and encourage other developers to do the same.

One thing that could use a bit more explanation and thought are the manager mechanics. @marvin.id brought up some of his concerns about some of the functions in his review: Notes and feedback (first pass) · Issue #59 · Trust-Machines/BNS-V2 · GitHub

To be clear, I think this functionality is very much needed but it’s also important to be clear to users of various namespaces what they’re buying. Previously with “subdomains” the operator gated registrations…controlled who could register…but once registered, users had full control and ownership of their names. My understanding is not the case with managers. I understand that this functionality is necessary to support what Orange Domains is trying to do with .locker and what other namespace creators might want to do. It’s also worth thinking about failure conditions for managers…like what happens if the goes bankrupt, gets bored, looses their private key, etc. Does the namespace become useless? Perhaps there are already well thought out answers to questions like this is a document somewhere that could be shared!

I encourage everyone to join the Trust Machines’ X Spaces later today (July 12th) at 11:30 PM HKT / 3:30 PM UTC / 11:30 AM ET.

https://x.com/i/spaces/1lDGLlvWyvzGm

After a quick glance, I have several recommendations:

  1. The get-namespace-properties should only return properties.
  2. The get-primary-name should be splitted to get-primary-name(return name) and get-primary-id(return id).
  3. The namespace-manager has too much power, it can burn/transfer/list/… anyone’s name. For this reason, few will buy custom namespaces’ names, I think this design is not good at all.
  4. Marketplace related logic should be removed, it increases the attack surface. Core contract should be simple.

Hey @larry thanks for the feedback, I addressed your github issues and already talking with the team about the license.

1 Like

Hey @Stacker thanks for your recommendations:

Yes, the point of managed namespaces was to open up as much as the default functionality as possible for max customization. The properties that any one specific manager has are explicitly defined.

Hey! So no right now that is not implemented, but the functionality is there, the only difference is that instead of calling the function once, you can call it multiple times, and on every call the lifetime of the namespace will be added to the renewal height

1 Like

oh interesting, so its s marketplace/renewal site implementation detail? Good to know!

So you mean for custom namespaces, the namespace manager can steal user’s assets casualy by default, unless he restrict himself manually?
This is very dangerous, user’s asset shouldn’t be stolen without his private key or authorization.

So you mean for custom namespaces, the namespace manager can steal user’s assets casualy by default, unless he restrict himself manually?

Yes - BUT there are tons of mechanisms to prevent this for custom managed namespaces that don’t want to have this ability.

Managed namespaces will use a “manager” smart contract, and it’s possible to “freeze” this manager contract in BNS v2. This means that if the manager is frozen, and the manager contract doesn’t expose any way to move a user’s name, a user can be guaranteed that their name can’t be stolen.

This ability for a custom namespace to move a user’s name is important for some use cases. For example, the concept of “you can only have this .dog name if you own this dog NFT”. In that example, if you transfer away your dog NFT, you shouldn’t get to keep that name, and so the manager contract would have a way to handle that.

Hi hank, I think User’s asset shouldn’t be stolen without his private key or authorization
is a holy principal(Except by DAO).

Though namespace manager can deploy a manager contract to self-restrict, nobody can make sure the manager contract is safe forever.

If the manager doesn’t self restrict, or the manager contract has bug, imagine one day the manager’s private key is leaked, attacker can transfer/burn/list all the names.

All in all, I think this feature is too centralized and dangerous.

Besides, I think the situation you mentioned is rare, we shouldn’t support the rare situation by decrease the safety a lot.

Regarding bridged to L1 domains, could it be a simple solution, to add a corresponding STX address in their Gamma account?

For example, like most others I have all my BNS L1 domains under the same Ordinals address. If I could just add a corresponding STX address to that Ordinals address on my Gamma that could be viewable to @hank @setpato and Co. that could be a quick solution!?

Had another thought - does the new contract implement protection around the grace period? Right now the grace period does not stop another user registering a name, thus rendering it useless.

Hello hello!

Quick update on BNS-V2

1 Like

@setpato

Hey!
The way renewals work is:

  • If it is in a valid or grace period:

    • Valid period - only the owner can renew the name, and the lifetime of the namespace gets added to the renewal height
    • Grace period - only the owner can renew the name, and the lifetime gets added to the current burn-block-height
  • If it is not in a valid or grace period:

    • If the owner is renewing the name, do the same as if in grace period
    • If it is not the owner renewing the name, then update the renewal-height and transfer it to the new owner
1 Like

@setpato - hey there!

May I suggest:

  • Let anyone renew a valid (or in grace period) name regardless of the owner.
  • The current name owner will stay the same and only the block height will be updated.
  • One possible upside, for example, I can offer a paid service to renew names for my clients.

Thank you for your hard work! :pray:

1 Like

:wave: GM BNS Community

We’re excited to share some big news with you! As part of our ongoing commitment to enhance BNS, we are gearing up for the launch of BNSv2 and hope to have a target date set soon. A major aspect of this upgrade is the creation of a new logo that will represent the refreshed look and feel of the system.

:art: We’ve been working closely with talented designers to create three distinct logo options to start with and hopefully iterate from. Each one captures a different essence of what BNSv2 stands for. Now, we need your input and feedback!

:heart: Each logo honors the BNS logo’s original design vibe. We’ve tried to go classic, futuristic, and minimalist options! A second logo is needed to differentiate the BNS V1 asset from the BNS V2 asset inside the users’ wallets.

We’ve created a survey to vote here for (1) Font and (2) Logo!
Please vote and share all your feedback! :arrow_forward: Survey Link here

:hourglass_flowing_sand: Get your votes in by September 2nd!

:pray: Thank you for your ongoing support and for helping us shape the future of BNS. We look forward to hearing your thoughts and selecting a logo that will proudly represent BNSv2!

Onwards!
Rena and the Orange Domains contributors

1 Like

Adding more color here - the original designer for BNS came through!

https://x.com/cexaline/status/1826950256686501888

I have no idea who these “talented designers” are, but to be honest, those designs are :-1: It looks like a terrible internship job. Even with the worst AI, you can have much better results than that. This is the result of work done without any enthusiasm or creativity.

Please, this is serious stuff for us, the community. We appreciate the effort, but treat this with more respect, please. Do you think the designs are up to par with the project? I really hope you don’t think that.

Kind regards.

1 Like

Hey everyone! I’m happy to share an exciting update on our zonefiles solution.

After a lot of consideration and feedback from engineers and community members, we’ve landed on a hybrid approach that we believe is the best of both worlds: combining on-chain zonefiles with IPFS zonefiles.

Here’s why this approach: We’re introducing a dedicated contract that will manage everything related to zonefiles. This contract is designed to store up to 4,096 bytes directly on-chain, linking the zonefile to the name and namespace, ensuring that smaller zonefiles are instantly accessible and secure. For larger zonefiles, we’ll be leveraging the power of IPFS by requiring an IPFS CID, which will also be securely stored in the contract.

The API will seamlessly handle the resolution process, ensuring that retrieving zonefile information for any given name and namespace is correctly done.

This solution offers flexibility and scalability.

Here is the contract already deployed on Testnet

And it is already hooked up to this front end(WIP) so you can interact and test it
https://testnet-bns.vercel.app/

5 Likes

Fantastic! This sounds like a viable solution that should work for all.

1 Like