-
Notifications
You must be signed in to change notification settings - Fork 659
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
discuss fee algorithm #20
Comments
One more idea is to have namespaces be identified by the price policy. For example: "10-2/ryan" would refer to the name "ryan" registered in the namespace "10-2", which has the fee policy of 10 BTC for a 1-letter name and a decay rate of 2, which means as you add on one letter, the price gets half as expensive. "0.001-1/ryan" would result in names that cost 0.001 BTC. Since the decay rate is "1", all names cost the same, regardless of length. So if you want a different fee policy, just start using a namespace identified by that policy and register names in there. |
Yes, we'd love to get more feedback on the pricing of names. We're approaching this as: -- Opennamed creates a "namespace universe" (thanks @rxl for the term) and gives people the ability to create different namespaces e.g., d/ for domains, u/ for openname usernames etc. A big question is about pricing for these names. @taoeffect pointed out that if the names are not free then people would try to fork opennamed and reduce the price and it's a valid concern. Building up on what Ryan said. Here is an addition: -- Let the creator of a namespace specify the pricing as a prefix (same as above comment, can debate how exactly to specify the prefix) What this enables is that the creator of the namespace can specify a price (could even be a flat price i.e., no decay e.g., $10 USD for domain regardless of length) and then when domains expire we let the market decide what are people willing to pay for it. This has the properties that: a) addresses initial squatting problem (can decide what price will keep squatters away) |
So one question about this name bidding process after first expiration: Let's say the name price is $10 / 0.25 BTC. Then let's say the name expires. I assume bids after that all have to be above $10. Will the name then go to the highest bid that clears the $10 bar? Then what happens if it expires again? Will the name once again go to the highest bid above $10? Also, why is this better than having a name bidding period upon first register as well? The problem I see with not having this is that it still allows squatters to get a "deal" if they are early. It doesn't make any effort to put the name in the right hands. Another idea is to have a "bidding" flag. If a namespace has a bidding flag, then names must be bid on AND clear the minimum bar outlined by the fee algorithm. If the namespace doesn't have a bidding flag, then names are registered immediately so long as the clear the fee bar. |
Side note: thought of an alternative term for "name universe" that's a bit easier to work with: "nameset". Here, the established nameset would refer to all names ever registered on all possible namespaces. The nameset is the superset of all namespaces, and the nameset has multiple namespaces within it. In a sense, the nameset refers to a given snapshot of reality. If we extend this to ICANN DNS, then one nameset is the representation of all names ever registered with all TLDs at a given time. If a name is registered at |
I like Allowing namespaces to specify:
Etc, that seems like a win-win, resulting in maximum adoption and little reason for forks or competitors (since you're facilitating competition within opennamed's protocol). Edit: sorry for all the edits. _Verryy_ long day. |
Liking the sound of this! Having a generic way to define namespaces helps a lot in people converging to the same underlying platform. There shouldn't be any need to start your own blockchain or your own protocol on top of a blockchain if all you want to do is start a namespace with certain properties. I was thinking that one option for defining names on namespaces can be:
The prefix is like a header that fully defines the policy of the namespace (kind of like headers in IP packets), namespace can take the usual format of 'u/' and so on (it just needs to uniquely identify a namespace) and finally a name complies to some regrex. Due to size limitations of OP_RETURN, we might want to put size limits on prefix, namespace name etc (or maybe not and just a single size limit is enough?) |
Yeah, I like it as well. And I think there should not only be size limits on the prefix but there should be a fixed defined size. For example, if we use the equation Greg, I understand your desire to specify various types of curves, but I feel like it can get real complicated real fast. The curve would have to be specified in a byte somewhere and then each of the following bytes would have different meanings. If we did that, we'd have something like a language for fee policies like Bitcoin's script, which we might want to avoid. Further, with each curve, you'd have to ask what would be the "x" in the equation? The number of letters? And if the price is only dependent on the number of letters then why would you conceivably want anything other than a price that decreases as x increases (or has a 0% decrese/doesn't decrease at all)? It turns out that the exponential function can cover everything from constant name prices to rapidly decreasing name prices/free names across the namespace. One would have a very high degree of control by being able to manipulate the exponent and base constant. If you were to allow more specific curves, when there are only a dozen or so possible x values, you probably wouldn't even notice the difference. On the other hand, if "x" is not the number of letters but in fact something else, then what would that something else be? And would we need another indicator of what the "x" value is? Also another unnecessary level of complexity, I feel. As far as the |
Here's one way we could encode the namespace fee policy: Equation for price calculations
...where x is the number of letters in the name and a0, a1, and b are all integers from 0 to 15. Equation Encoding
FlagsOne possible flag set:
This entire policy encoding takes up only 2 bytes. |
Another alternative to "nameset" and "nameuniverse": "nameview". Contexts: "build nameview", "verify nameview", "update nameview", "ensure all nodes have the same nameview", "all the namespaces in the nameview". |
This has been addressed and implemented. Please find the relevant documentation in the Usage document. |
👍 |
implemented cache layer for proofs
Chore: Merge libclarity separation branch
The current algorithm for calculating the price of a name is as follows:
How could this be improved? What other options do we have?
The text was updated successfully, but these errors were encountered: