4 Nov 2023 |
| selfhost joined the room. | 14:35:55 |
| selfhost set a profile picture. | 14:38:47 |
| selfhost changed their profile picture. | 14:38:57 |
| trixthethird joined the room. | 15:07:32 |
7 Nov 2023 |
| shitcoin_terminator joined the room. | 19:06:48 |
| ddapp joined the room. | 23:35:34 |
19 Nov 2023 |
| Red changed their display name from Self Mastery to Red. | 12:00:30 |
23 Nov 2023 |
ddapp | Hello, been working on my interpretation of Dmap, and my hope is to drive adoption and get paying users to buy zones. If you are interested, I'd be happy to get some feedback from you on these points and the implementation. Happy to discuss any aspect.
I agree Dmap's design shines where immutability and security are needed. My thinking is these uses seem interesting:
- Registering hashes of dapp clients should be the first use I'd pursue because it's a high value use to protocol teams to prevent DNS hacks.
- More far fetched is there may be a group of users interested to moving away from Github because of potential tracking/censorship, so storing git branches HEADs under dpaths could be interesting.
There are a few changes I made to registries. A couple noteworthy things:
- The decisions regarding the pricing of names under a zone can be deferred and upgraded to be based on auctions/governance decisions.
- I added the ability to store blobs (i.e. raw bytes) onchain, so contracts can resolve names onchain and pass by the dependencies on IPFS.
Wdyt? Happy to share testnet addresses if these sound interesting
| 19:43:12 |
ddapp | * Hello, been working on my interpretation of Dmap, and my hope is to drive adoption and get paying users to buy zones. If you are interested, I'd be happy to get some feedback from you on these points and the implementation. Happy to discuss any aspect.
I agree Dmap's design shines where immutability and security are needed. My thinking is these uses seem interesting:
- Registering hashes of dapp clients should be the first use I'd pursue because it's a high value use to protocol teams to prevent DNS hacks.
- More far fetched is there may be a group of users interested in moving away from Github because of potential tracking/censorship, so storing git branches HEADs under dpaths could be interesting.
There are a few changes I made to registries. A couple noteworthy things:
- The decisions regarding the pricing of names under a zone can be deferred and upgraded to be based on auctions/governance decisions.
- I added the ability to store blobs (i.e. raw bytes) onchain, so contracts can resolve names onchain and pass by the dependencies on IPFS.
Wdyt about the uses and implementation changes? Happy to share testnet addresses if these sound interesting.
| 19:46:05 |
ddapp | * Hello, been working on my interpretation of Dmap, and my hope is to drive adoption and get paying users to buy zones. If you are interested, I'd be happy to get some feedback from you on these points and the implementation. Happy to discuss any aspect.
I agree Dmap's design shines where immutability and security are needed. My thinking is these uses seem interesting:
- Registering hashes of dapp clients should be the first use I'd pursue because it's a high value use to protocol teams to prevent DNS hacks.
- More far fetched is there may be a group of users interested in moving away from Github because of potential tracking/censorship, so storing git branches HEADs under dpaths could be interesting.
There are a few changes I made to registries. A couple noteworthy things:
- The decisions regarding the pricing of names under a zone can be deferred and upgraded to be based on auctions/governance decisions.
- I added the ability to store blobs (i.e. raw bytes) onchain, so contracts can resolve names onchain and pass by the dependency on IPFS.
Wdyt about the uses and implementation changes? Happy to share testnet addresses if these sound interesting.
| 19:46:40 |
ddapp | * Hello, been working on my interpretation of Dmap, and my hope is to drive adoption and get paying users to buy zones. If you are interested, I'd be happy to get some feedback from you on these points and the implementation. Happy to discuss any aspect.
I agree Dmap's design shines where immutability and security are needed. My thinking is these uses seem interesting:
- Registering hashes of dapp clients should be the first use I'd pursue because it's a high value use case to protocol teams to prevent DNS hacks.
- More far fetched is there may be a group of users interested in moving away from Github because of potential tracking/censorship, so storing git branches HEADs under dpaths could be interesting.
There are a few changes I made to registries. A couple noteworthy things:
- The decisions regarding the pricing of names under a zone can be deferred and upgraded to be based on auctions/governance decisions.
- I added the ability to store blobs (i.e. arbitrary length of immutable bytes) onchain, so contracts can resolve names onchain and pass by the dependency on IPFS.
Wdyt about the uses and implementation changes? Happy to share testnet addresses if these sound interesting.
| 19:48:47 |
ddapp | happy thanksgiving btw | 19:49:40 |
24 Nov 2023 |
kbrav | What’s the purpose of blobs? A lil unclear on that | 18:01:01 |
kbrav | Wrt deferring pricing (there doesn’t necessarily have to be any at all) think you could just have an upgradeable proxy as the zone, idk that there’d need to be a rootzone update for that. But curious to hear thots | 18:05:42 |
25 Nov 2023 |
ddapp | In reply to @kbrav:matrix.org What’s the purpose of blobs? A lil unclear on that am thinking if it makes sense to store more than 1 word onchain so users don't need external storage. but maybe it's good enough to just always have a hash and download the file externally | 01:28:10 |
ddapp | In reply to @kbrav:matrix.org What’s the purpose of blobs? A lil unclear on that * am thinking if it makes sense to store more than 1 word onchain so users don't need external storage. but maybe it's good enough to just always have a hash and download the file externally (for the use case of downing code) | 01:31:02 |
ddapp | * am thinking if it makes sense to store more than 1 word onchain so users don't need external storage. but maybe it's good enough to just always have a hash and download the file externally (for the use case of downloading code from a dpath eg frontend) | 01:31:24 |
kbrav | yeah there's that but i think i remember that there's stuff you can do with meta and data, not sure if that's the same type vibe
so only one bit is actually taken by dmap LOCK mechanism...you can use the rest in meta to specify other metadata e.g. a length, and then in ascending keys store the stuff you need
but in most (not all) cases big blobs should be stored externally | 01:31:32 |
kbrav | or if you want your blob stored in a linked list, then have all your keys be 255 bits, and store the next pointer in meta | 01:32:36 |
ddapp | In reply to @kbrav:matrix.org yeah there's that but i think i remember that there's stuff you can do with meta and data, not sure if that's the same type vibe so only one bit is actually taken by dmap LOCK mechanism...you can use the rest in meta to specify other metadata e.g. a length, and then in ascending keys store the stuff you need but in most (not all) cases big blobs should be stored externally i agree with you, i saw the space in the meta too. i was thinking you could put tags as metadata and suggest decoding method for the reader of the blob/file, so the reader will know precisely how to decode the blob/file without relying on convention anyway, it got too complicated after the all, i believe dmap's strength is map a readable name to a hash, so if the last time you can trust the name and it was locked, this time you can trust it do let me know if im getting it wrong | 01:39:20 |
ddapp | on the topic of establishing trust for a name:
how do you see a reader of the name know that it is not malicious? should the user at least verify the content once and/or rely on friends to verify the content, if my question makes sense? | 01:41:29 |
ddapp | * on the topic of establishing trust for a name: how do you see a reader of the name know that it the content the name points to is not malicious? should the user at least verify the content once and/or rely on friends to verify the content, if my question makes sense? | 01:41:52 |
kbrav | yeah you could also go back in the history though if you're not using it for on-chain stuffs. was talking with someone else about that the other day.
was digging for something that i thought i remembered addressed that question, it didn't though. but the idea is that you know the dpath, you can audit the mechanics its zone uses to register data, and you can take it from there. | 01:49:46 |
kbrav | so for example, have a dpath, you know the dpath will get you to the correct zone, and let's say you really trust the zone owner for whatever reason, or you trusted them when they set LOCK == 1. that's how you know the data is good | 01:50:49 |
ddapp | In reply to @kbrav:matrix.org so for example, have a dpath, you know the dpath will get you to the correct zone, and let's say you really trust the zone owner for whatever reason, or you trusted them when they set LOCK == 1. that's how you know the data is good ah i see, i think i have the same understanding as you do ie locked dpath is just an immutable alias for the file, dpath doesn't try to provide any more assurance if someone wants any assurance about the file, someone has to verify the file is not harmful | 01:55:13 |
ddapp | In reply to @kbrav:matrix.org so for example, have a dpath, you know the dpath will get you to the correct zone, and let's say you really trust the zone owner for whatever reason, or you trusted them when they set LOCK == 1. that's how you know the data is good * ah i see, i think i have the same understanding as you do ie locked dpath is just an immutable alias for the file, dpath doesn't try to provide any more assurance if someone wants any assurance about the file, someone has to verify the file is not harmful (by trusting zone owner, manually verify the file etc) | 01:55:56 |
ddapp | In reply to @kbrav:matrix.org Wrt deferring pricing (there doesn’t necessarily have to be any at all) think you could just have an upgradeable proxy as the zone, idk that there’d need to be a rootzone update for that. But curious to hear thots
- am thinking it's nice zone owner can change their pricing strategy by taking in the plaintext name and block name registrations (eg revert based on length), and avoid adding proxy (to me it's a little complex); code below
- totally agree with you rootzone doesn't need to change, the rootzone governor can manually grant tld and that is all the object does
- as per ens, thinking there would be one tld eg
dmp so there is no collision with tlds in DNS
wdyt? : )
function assume(bytes32 salt, bytes32 name, string calldata plain) external {
require(owners[name] == address(0), "ERR_TAKEN");
require(keccak256(abi.encode(plain)) == name, "ERR_NAME");
bytes32 comm = keccak256(abi.encode(salt, name, msg.sender));
require(commitments[comm] >= Appraiser(appraiser).appraise(plain), "ERR_PAYMENT"); // appraiser is upgradeable by zone owner
commitments[comm] = 0;
owners[name] = msg.sender;
emit Assume(name, plain);
emit Transfer(address(0), msg.sender, name);
}
| 02:03:52 |
ddapp | In reply to @kbrav:matrix.org Wrt deferring pricing (there doesn’t necessarily have to be any at all) think you could just have an upgradeable proxy as the zone, idk that there’d need to be a rootzone update for that. But curious to hear thots *
-
am thinking it's nice zone owner can change their pricing strategy by taking in the plaintext name and block name registrations (eg revert based on length), and avoid adding proxy (to me it's a little complex); code below
-
totally agree with you rootzone doesn't need to change, the rootzone governor can manually grant tld and that is all the object does
- the reason is, as per ens, thinking there would be one tld eg
dmp so there is no collision with tlds in DNS
- thinking it'd be nice dpaths can be used in browser as URI (need a flag somewhere to state if the URI is mutable or not)
wdyt? : )
function assume(bytes32 salt, bytes32 name, string calldata plain) external {
require(owners[name] == address(0), "ERR_TAKEN");
require(keccak256(abi.encode(plain)) == name, "ERR_NAME");
bytes32 comm = keccak256(abi.encode(salt, name, msg.sender));
require(commitments[comm] >= Appraiser(appraiser).appraise(plain), "ERR_PAYMENT"); // appraiser is upgradeable by zone owner
commitments[comm] = 0;
owners[name] = msg.sender;
emit Assume(name, plain);
emit Transfer(address(0), msg.sender, name);
}
| 02:05:15 |
ddapp | *
- am thinking it's nice zone owner can change their pricing strategy by taking in the plaintext name and block name registrations (eg revert based on length), and avoid adding proxy (to me it's a little complex); code below
- totally agree with you rootzone doesn't need to change, the rootzone governor can manually grant tld and that is all the object does
wdyt? : )
function assume(bytes32 salt, bytes32 name, string calldata plain) external {
require(owners[name] == address(0), "ERR_TAKEN");
require(keccak256(abi.encode(plain)) == name, "ERR_NAME");
bytes32 comm = keccak256(abi.encode(salt, name, msg.sender));
require(commitments[comm] >= Appraiser(appraiser).appraise(plain), "ERR_PAYMENT"); // appraiser is upgradeable by zone owner
commitments[comm] = 0;
owners[name] = msg.sender;
emit Assume(name, plain);
emit Transfer(address(0), msg.sender, name);
}
| 02:07:04 |
ddapp | *
-
am thinking it's nice zone owner can change their pricing strategy by taking in the plaintext name and block name registrations (eg revert based on length), and avoid adding proxy (to me it's a little complex); code below
-
totally agree with you rootzone doesn't need to change, the rootzone governor can manually grant tld and that is all the object does
- the reason is, as per ens, thinking there would be one tld eg
dmp so there is no collision with tlds in DNS
- thinking it'd be nice dpaths can be used in browser as URI (need a flag somewhere to state if the
URI name is mutable or not); so eg v1.rico.dmp.limo/im
wdyt? : )
function assume(bytes32 salt, bytes32 name, string calldata plain) external {
require(owners[name] == address(0), "ERR_TAKEN");
require(keccak256(abi.encode(plain)) == name, "ERR_NAME");
bytes32 comm = keccak256(abi.encode(salt, name, msg.sender));
require(commitments[comm] >= Appraiser(appraiser).appraise(plain), "ERR_PAYMENT"); // appraiser is upgradeable by zone owner
commitments[comm] = 0;
owners[name] = msg.sender;
emit Assume(name, plain);
emit Transfer(address(0), msg.sender, name);
}
| 02:08:21 |