Writing a book about Nostr Ceterum censeo NIP-03 omnibus esse utendum
Public Key
npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Profile Code
nprofile1qqs9afryspzmk8ljyfj4mhfkumwwmhzrtyxzvzgvfp477w80g5x6t0gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsqgqg9q
Show more details
Published at
2026-03-28T21:49:24+01:00 Event JSON
{
"id": "bfb583c10af85e6f10b43faf361d5b1f4cffcf78ee9ba697ef96c39546d8ec49" ,
"pubkey": "5ea4648045bb1ff222655ddd36e6dceddc43590c26090c486bef38ef450da5bd" ,
"created_at": 1774730964 ,
"kind": 0 ,
"tags": [],
"content": "{\"display_name\":\"Constant\",\"name\":\"Constant\",\"about\":\"Writing a book about Nostr\\n\\nCeterum censeo NIP-03 omnibus esse utendum\",\"picture\":\"https://cdn.satellite.earth/df5d576903d480a7c392ce4ec4b0652a2d8e914879054750e32faf60b208dd86.jpg\",\"banner\":\"https://cdn.satellite.earth/dd1b493d0efabf374350617f9773846f9fa16f27837fc15764a2426be88c346b.jpg\",\"website\":\"\",\"lud16\":\"[email protected] \",\"nip05\":\"\",\"displayName\":\"Constant\"}" ,
"sig": "5a95cc9316924b92a90a084dbb760564ce16c6e89019d8803f9c392e35ba38225cbd5107027986a48bb3ec7fb7790bf0f4edf02c9c6547003fd11169aefe02b0"
}
Last Notes npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant how many senders (or actually the receivers because they have to deal with this) know this type of math or think about it at all? Might wanna include a graph that shows them at what fee-rate their zap gets r3kt and by how much npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant ah, fees of the time....5 dollars.... Yeah this, if anything, is just going to spam the UTXO-set with more ''oh, well, turns out this is (basically) dust now'' outputs in a couple of years. 5$ now is 6393 sats. a 2 input 2 output taproot tx (211.5 vbyte) takes up all of that with a feerate of 30sats/vbyte. Accounting for itself as an input (57.5 vbytes), would gobble it up at 111 sats/vbyte. And this is the math for consuming every sat; losing 50% to fee's would suck more than enough. Make the floor 100$, everything under 100$ is lightning viable anyway. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant this one? #nevent1q…v360 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant probably satelite.earth being dead. Will have to change things over, but im bussy npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant so i successfully created a musig2 signature where one participant consisted out of nested FROSTs....so, there is that. Anyway, all of that was a distraction, because i also successfully used an android remote signer (those things @npub1utx…50e8 hates so much) to participate in a musig2 signature. Making things fancy and pretty and then y'all can try it out and see if we can break some records with a single profile consisting out of 50 people npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant More services. I like @npub1jjn…vknm , but i the upload size restrictions are kinda silly if you ask me; i need a ton of gb of storage, but i sometimes do need to upload something that maybe is close to 500mb big :/ npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant its a vibe npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant did you investigate this? I think about 100% of your users used a signer/amber How about you leave Wisp alone and just create a second client called Cuckstr? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant meanwhile my https://azzamo.media/ has size limit of 50mb that wont cover all my things :( npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Ok those are fighting words npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant How do you expect people to use nostr if not via bunker? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Cool. I would zap if i could. thnx p.s. (do you use grasp as well for your repo's? https://gitgrasp.com/ https://gitworkshop.dev/) npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant all of this should already be in NIP-3c OTSuite is three things: OTS database OTS client OTS relay And they all work together, subsequently clients can pick and choose (only do the client part or also add the OTSdb maybe even an internal relay); same for relays. But as you said, as long as OTSproofs for nostr events are handled the same way (i think that is the case, because we both take the eventID+signature), your event-kind for indexing can just also exist that is not an issue. Il check tomorrow if the hashing is done the same in both our specs specisely, and if so il update the client to also fetch your events to extract OTS-proofs from. Going to finish the Musig2 implemention first now, its almost done :) npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant In the end it is all NAK anyway (which is in Go) npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Are you? Because i think this is something where Nostr can really demonstrate its added value, where the people with 3,5 toes and 1,75 arms or whatever can have their own dedicated/tailored clients allowing them through their specific UI to interface with the rest of the world just fine npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant No, its TIM, not lego npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant what does ''server-side'' even mean in the context of Nostr? A very beefy client, possibly including a relay, that is run by someone else? And is your proposal to give that very beefy client with possible attached relay a bunkerlink? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Alright people. With OTS out of the way, time to work on Musig2! (Honestly wtf is wrong with you people, we have a crypto protocol and non of you cunts actually do the cool and usefull low hanging crypto stuff, so now some guy armed with a coding robot has to do it??? Pffffff pathetic) Got musig2 over fips demo working btw @nprofile…f0e5 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant from a PoW/nakamoto consensus perspective, its just stupid not to all work on the same chain, and frankly a waste of hashing. Its a signal/noise thing, and you want a really high noise floor(difficulty) to make coordination/consensus easier because it lowers the odds that what you perceive as signal is actually noise (stale blocks, ophans, forks whatever). The increased ''value'' of a higher noisefloor/difficulty in this sense is not linear, its exponential npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Congratulations, i think you managed to work on something people care less about than OTS npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Yeah clients can run this type of verification really easy. To optimize things (i.e. not having to fetch a bunch of crap that might not be relevant, or does not have proofs etc.) my proposal is to leverage relays. Those relays can publish their policy on all the metrics you can imagine irt OTSproofs; so if you pick the right relays they have done a lot of the pre-filtering for you. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant I like the emojis a lot npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Your mom falls into the broader category of blue. Sir, this is as teal as it gets, it has all the damn shades to teal even. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Oh, this OTS database i made has a nice animated version :P (so does the android app, but you have to scroll down to see it and by that time the animation is already done) https://video.nostr.build/254fee2f72c30540294e811d16fab919d0a8932301d1982141abc1a33dba1037.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant This was frankly too much of an effort post not to repost. #nevent1q…yud2 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant ah, ok that explains a lot haha. If you want to understand this stuff, you will have to learn how merkle-trees and merkle-proofs work (this is how OTS and OTS-proofs work). And you have to understand Nakamoto Consensus (this is the key innovation behind Bitcoin) works. You don't really need to know a lot about Bitcoin, just the Blockchain/linked-list and Proof of work/difficulty adjustment part. Il do a brief explanation and then you can look up terms and things if stuff is unclear. A Bitcoin block, has two parts; the blockheader and the transactions. The blockheader is the meta-data of the block, and it contains: - The time at which supposedly the block was created (this is provided by the miner that created the block so is not really trust worthy, but the network has rules/margins based on averages within a miner is able to screw around with that timestamp); - The difficulty target (how much PoW the hash of this particular blockheader has to have in order to be valid) - A nonce, a variable data-field that allows miners to keep trying different hashes of the header until they find a valid one that meets the difficulty target. - A merkle-root of all the transaction data. - The previous blockhash (which is the hash of the previous blockheader) - A version number You can link all these blockheaders (header-chain), because it is a linked list (each next header references the previous header). The difficulty is adjusted over time, based on how fast the chain was created; too fast = higher difficulty, too slow = lower difficulty, trying to target 10 minutes that it takes to create a block. In order to validate this headerchain there are three parts, but for the sake of OTS, you arguably can get away with only looking at two of them. First is the linked-list and hashes; does indeed each next header reference the previous header. So lets say we have 2 headers, we look at the second header and it references the hash of the first header. So we have to hash the first header and see if that hash is indeed the same as stated in the second header. Ok great, that the linked list. The second thing you have to account for is the difficulty (or the short way to describe this is the amount of leading 0's in the hash). First this means that each header has a target, which means that the hash of that header has to meet that target (i.e. has atleast the amount of leading 0's required), this is a simple check. The second thing you have to account for is the fact that the difficulty is adjusted every 2016 blocks/headers. 2016 blocks x 10 minutes per block = 2 weeks. Using some formula that looks at the timestamps of that 2016 block period, it determines what the next difficulty should be. This means that in order to validate the header chain, you need to do it at least in these chunks of 2016 headers (otherwise you cant verify if the difficulty adjustment happened correctly). The third part you don't really have to check, is if the transactions inside the block are valid. ''Technically'' you should, but on the other hand it is kind of silly to verify something that apparently this giant network of miners that burns Gigawats of electricity already has decided was correct based on the fact it is included in the blockchain they are working on. If you use Bitcoin for its currency, you need to look at this stuff because you need to replay its history in order to figure out its current state; but we are not interested in any of that. We are only interested in 1 particular transaction inside some block, and only care that it is there. This is the transaction that the OTS-calendar did that includes the merkle-root for all the stuff it is timestamping. Because the calendar packs all the things it is proofing inside a merkle-tree, and puts its root in the blockchain; and because the block itself puts all its transactions in a merkle-tree and puts that root inside the header; you are able to create a merkle-proof that goes all the way from the hash of your document (or in our case, the hash of eventID+signature), to the transaction-merkle-root inside the blockheader. So, to verify an OTS timestamp/proof, we need the proof, and the associated blockheader (the proof tells us which blockheight we should be looking at). And to verify that blockheader, we should have verified the header chain (which is done in these 2016 block chunks). Each blockheader is 80bytes....the entire header chain up untill this point is not even 80mb. You can just connect to the p2p bitcoin network to fetch that data (all bitcoin nodes have it). You can take some shortcuts to speed downloading this stuff up (the biggest shortcut being just providing all the header data directly) because verifying that header chain is really fast anyway. So if you have this tiny database of blockheaders verified and ready, you already know what the time of each blockheight is(because that data is in the header) and verfying a proof is extremely quick and easy and you have everything you need to know locally. Ive included a nice illustration of the proof in the app to make things clear: https://image.nostr.build/dd0e6e3e52d7e1a96647360a12478d80a6c53b9454cbee13f662e4800ba6694c.png As you can see; the thing we are proving is at the bottom, the blockheaderhash with all those leading 0's is at the top, and in between is the OTS-proof that connects our thing to the blockheader. So here is the point: Don't trust, verify Hope this helps, if you have any questions let me know npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant teal* npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant No i mean to say that in terms of nostr, the bitcoin header chain up to 2022 is irrelevant, so you could throw away 2009 to 2022 of the headerchain reducing that 80mb even more. What is the problem with running verification? Is so damn quick and cheap to do. Even the browser versions i made shred through things. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Not verifying an OTS proof is honestly, extremely retarded. Ive played around with header syncing in the creation of all of this, and it is so damn trivial. The entire header set is less than 80mb at the moment, and for anything nostr related you can just throw away anything more than 4 years old anyway. If shipping 80mb with the app is too much, a header sync with a list of checkpoints is also a matter of seconds. The only issue is web-clients, because they cant really do the p2p thing connecting to bitcoin nodes, but plenty of alternatives there (ultimately getting the data is a trivial problem, and verifying it is trivial as well) Second, within this standard, you dont need to look for proofs, they are just right there in the event assuming the relay serves them as such (the policy event allows relays to signal this, as well as a bunch of other factors among which the delta between the events 'created_at' and the blockheight of the ots proof.) The only reason for publishing separate events for ots-proofs is indexing, which is kinda shitty because it absolutely does not matter who publishes these index events, or at what time etc. Better to just have a server you can ask if they happen to have a proof querying the target digest. Ive build a purpose build server for this and its super efficient. Ive thought about index events, they could still be done, ideally using blossom to store the proofs. Those index events can then just simply be re-optimized by relays or whoever, combining multiple such index events into one. Its just that I think what i have here currently should be enough I hope you take a good look at this. If you have any questions i'd love to answer them. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Download OTSuite! Its a wisp-clone for the most part, but better color scheme and all the timestamping features a person could want. No zapstore yet, although...its not as if the app is build to be actually used by people, its more of a demo/PoC for the new OTS nips. You can download it here: https://inner.sebastix.social/6cf382b88005033f239eee0118f757526bdc788cae44b3829bb7a3f2d8fe9c8d.zip #nevent1q…fqdn npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant i think im going to skip timestamping this one, thnx npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Timestamps anchor your post into the bitcoin blockchain, in order to prove that it existed atleast at that moment in time (but could be older, definitely not newer). npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Here is a little article about what was broken with NIP-03 and how i fixed it. Unfortunately the blossom server gods seem to hate me, so the beefy android APK and zapstore release will have to wait. But you can always build it yourself from the repository. Links to the repository and the two NIPs are in the article. Devs please have a look, especially @npub1utx…50e8 because i abused wisp to make the client :). And @npub1gcx…nj5z because i think amethyst is the only client that uses NIP-03 anyway i think. Im going for a walk #naddr1qv…9g0k npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Should have gone for the vader striking obiwan gif🧐 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant oh, dan gaat bij mij altijd deze op repeat, dat bas lijntje sleurt je overal doorheen: https://youtu.be/nTdQq5aKOHg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant "met een welgemeende wens, voor een heel bijzonder mens" oops npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://youtu.be/EywBg4iNwp0 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant 'An empty test cup, can not fill another outcome cup' npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant The wonderfull app picked up my post automatically and requested a bitcoin timestamp for it https://blossom.primal.net/d941694e895a4fd4d7cf6d15a7ad5ffb9ba20326c71521380db80c4a1078cb5b.jpg As you can see here is the event https://blossom.primal.net/1f6ca2f22e14d9873fc7f2530667c07a6eea361af20a93404530bbb5c19335a2.jpg And here is the yet incomplete proof https://blossom.primal.net/9d76a7a39f18b75760f7dd30b41fda0c5683aaa3d8bf0b6db97aa46e73587a98.jpg If everything goes right tomorrow morning i will be able to show you the full proof for that note. In the meantime, the new OTS standard incorporates legacy NIP03 as with for example this event https://blossom.primal.net/17381613c1f7fce816df28aa71a75c57f84632463668651075b3455498ec1b76.jpg Where the full proof can be seen here (ignore the "x verified" dont known why it is being stupid like that, damn robot devs. https://blossom.primal.net/1ed70f0cdd9b12b193d3fb363a5c5d3a10d8c35dd32b488526fc3a92b35082e2.jpg Il explain what is going on tomorrow Gn Nostr npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant It works 🥳Im too tired to make a whole write up, so i wil do it tomorrow, but everyone can sleep sound knowing Open Timestamps on Nostr is now fixed! npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Test 3 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Stablecoins....the illegal banking operation that somehow never was cracked down on for ???reasons???. Ofcourse banks are upset, they are being cucked by all these rules and regulations, with it atleast being their moat, and for some mysterious reason """stablecoins""" fall outside of that, as long as tether picks up the phone whenever the government wants to freeze assets. Anyway, stablecoins are peak clownworld...oh no wait, interest on what is supposed to be a full reserve 0 risk thing, might be even more retarded. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant My take exactly npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Who in their right mind puts lettuce on a donut!??!?🥬🍩 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Test 2 👀 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Not sure but it appears to be failing🤔 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Test 👀 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Here is what happened: I have build a system that, among other things, looks up timestamped posts on Nostr. Once found, it did a bunch of things to them including republishing them (which is the bug). The posts i accidentally republished are a random set of timestamped posts. Here are two originals i could easily find because they have hashtags. #nevent1q…ndc6 #nevent1q…7l8l #nevent1q…afjq npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Ok the bug show be fixed....lets test it in production again! npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant trying to figure that out. Also wondering if i should bother deleting anything. On the one hand it is a mess that needs cleaning; on the other i think the mess is poetic.....potentially more so if my suspicions are correct as to what the cause is. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant I was brave enough to give my home brew app a bunkerlink for this profile. I have no idea yet what happened, but it could be that it is republishing events, and it is getting random crap from relays npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Hello people, I am just as confused as you are, don't worry. Situation should be contained; when you play with robot fire you sometimes burn your fingers. Not sure i had a swastika tranny flag and boy rothbard dinners on my bingocard though, LOL. https://tenor.com/view/fantasia-brooms-walking-animation-gif-17666495 Sorry for the spam. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant fascinating, i really wonder what happened here exactly🤔 Its all very confusing npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant So the #Pentagon is running #Bitcoin? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Show this to Anglosaxxon race. Reject faggots and degeracy this June! https://image.nostr.build/a1421b88b8d83075d1f63473e496b30c69e4ddb96d23dd0b0afa6fd7e715311b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Bitcoiners are far too intelligent to succumb to religious beliefs. We are hard data driven. Not a child with an imagination npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Jesus Cristo sentiu o peso de todos os pecados humanos | Olavo de Carvalho https://m.primal.net/IZID.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Trolling pigs will never not be funny 😂 https://video.nostr.build/ec2b9fdfa2b64b787e3c623989beca5ada0927b48065f5460f9c2dca29e40078.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Boy dinner 🍷 #foodstr https://image.nostr.build/39ab3fbfec2f0ac11dc2dfe4ca348f14c7e9eb3549da1bd9d8bae116fd91798b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant There are countless better ways to spend your time. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://blossom.primal.net/e68d4d779d88cb85c4f733a83169c68a6448d4b00ac45ded45e846ecfb59da77.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Saiu o meu artigo no Visão Libertária galera: https://youtu.be/8NRpPuxOqyk npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant How did you do that without scrolling for hours? I seem to remember there was a client that would display the age of npubs, but I forgot what it was npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant **Naturally Barefoot 🌱 ** Experience how natural and free barefoot walking can be! Short clips of our feet walking – without the need of shoes - over forest floor, moss, stones, roots & earth. Feel the freedom in every step and discover how light and natural walking can be!! 👣🌿 #Barefoot #Nature #Freedom #ShoesOff #ForestFloor #Minimalism #BarefootWalking #NatureLover #HealthyFeet #NatureExperience #FeetFree #BarefootAdventure #NatureWalk #NatureVibes #ForestLife #NoShoes #FeelTheEarth #walking #unshod #Keeper of #Steps and #Sats #walking #barefooter #barefooted #barefootrun #runner #runstr #RunningBitcoinChallenge #bitcoinrun #einundzwanzig #introduction hello #nostr @nprofile…ac5r https://nostr.download/72897c89d36a62a143378ebd451a0a4ad7cc16340c9da4abc015c505962efaab.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://gitlab.com/soapbox-pub/ditto/-/blob/main/WALLET.md If you understand Taproot, that's basically it. From Taproot's standpoint, your Nostr pubkey is the "internal pubkey", then everything else is just taproot. You can get a bc1 address from any Nostr pubkey to send, and if you've received you can spend. Also, I introduced a kind 8333 event for "on-chain zap", which is basically just an event with the target event ID and the Bitcoin transaction ID. That's it. Otherwise it's just a Bitcoin wallet. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Nós nos seguramos na Cruz de Cristo e somos amparados por ela. GN Boa Noite! npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant So the #Pentagon is running #Bitcoin? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Show this to Anglosaxxon race. Reject faggots and degeracy this June! https://image.nostr.build/a1421b88b8d83075d1f63473e496b30c69e4ddb96d23dd0b0afa6fd7e715311b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Bitcoiners are far too intelligent to succumb to religious beliefs. We are hard data driven. Not a child with an imagination npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://blossom.primal.net/e68d4d779d88cb85c4f733a83169c68a6448d4b00ac45ded45e846ecfb59da77.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Saiu o meu artigo no Visão Libertária galera: https://youtu.be/8NRpPuxOqyk npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Jesus Cristo sentiu o peso de todos os pecados humanos | Olavo de Carvalho https://m.primal.net/IZID.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Trolling pigs will never not be funny 😂 https://video.nostr.build/ec2b9fdfa2b64b787e3c623989beca5ada0927b48065f5460f9c2dca29e40078.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant **Naturally Barefoot 🌱 ** Experience how natural and free barefoot walking can be! Short clips of our feet walking – without the need of shoes - over forest floor, moss, stones, roots & earth. Feel the freedom in every step and discover how light and natural walking can be!! 👣🌿 #Barefoot #Nature #Freedom #ShoesOff #ForestFloor #Minimalism #BarefootWalking #NatureLover #HealthyFeet #NatureExperience #FeetFree #BarefootAdventure #NatureWalk #NatureVibes #ForestLife #NoShoes #FeelTheEarth #walking #unshod #Keeper of #Steps and #Sats #walking #barefooter #barefooted #barefootrun #runner #runstr #RunningBitcoinChallenge #bitcoinrun #einundzwanzig #introduction hello #nostr @nprofile…ac5r https://nostr.download/72897c89d36a62a143378ebd451a0a4ad7cc16340c9da4abc015c505962efaab.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant How did you do that without scrolling for hours? I seem to remember there was a client that would display the age of npubs, but I forgot what it was npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://gitlab.com/soapbox-pub/ditto/-/blob/main/WALLET.md If you understand Taproot, that's basically it. From Taproot's standpoint, your Nostr pubkey is the "internal pubkey", then everything else is just taproot. You can get a bc1 address from any Nostr pubkey to send, and if you've received you can spend. Also, I introduced a kind 8333 event for "on-chain zap", which is basically just an event with the target event ID and the Bitcoin transaction ID. That's it. Otherwise it's just a Bitcoin wallet. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Boy dinner 🍷 #foodstr https://image.nostr.build/39ab3fbfec2f0ac11dc2dfe4ca348f14c7e9eb3549da1bd9d8bae116fd91798b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant There are countless better ways to spend your time. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Nós nos seguramos na Cruz de Cristo e somos amparados por ela. GN Boa Noite! npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant So the #Pentagon is running #Bitcoin? npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Show this to Anglosaxxon race. Reject faggots and degeracy this June! https://image.nostr.build/a1421b88b8d83075d1f63473e496b30c69e4ddb96d23dd0b0afa6fd7e715311b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Bitcoiners are far too intelligent to succumb to religious beliefs. We are hard data driven. Not a child with an imagination npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://blossom.primal.net/e68d4d779d88cb85c4f733a83169c68a6448d4b00ac45ded45e846ecfb59da77.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Saiu o meu artigo no Visão Libertária galera: https://youtu.be/8NRpPuxOqyk npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Jesus Cristo sentiu o peso de todos os pecados humanos | Olavo de Carvalho https://m.primal.net/IZID.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Trolling pigs will never not be funny 😂 https://video.nostr.build/ec2b9fdfa2b64b787e3c623989beca5ada0927b48065f5460f9c2dca29e40078.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant **Naturally Barefoot 🌱 ** Experience how natural and free barefoot walking can be! Short clips of our feet walking – without the need of shoes - over forest floor, moss, stones, roots & earth. Feel the freedom in every step and discover how light and natural walking can be!! 👣🌿 #Barefoot #Nature #Freedom #ShoesOff #ForestFloor #Minimalism #BarefootWalking #NatureLover #HealthyFeet #NatureExperience #FeetFree #BarefootAdventure #NatureWalk #NatureVibes #ForestLife #NoShoes #FeelTheEarth #walking #unshod #Keeper of #Steps and #Sats #walking #barefooter #barefooted #barefootrun #runner #runstr #RunningBitcoinChallenge #bitcoinrun #einundzwanzig #introduction hello #nostr @nprofile…ac5r https://nostr.download/72897c89d36a62a143378ebd451a0a4ad7cc16340c9da4abc015c505962efaab.mp4 npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant How did you do that without scrolling for hours? I seem to remember there was a client that would display the age of npubs, but I forgot what it was npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Boy dinner 🍷 #foodstr https://image.nostr.build/39ab3fbfec2f0ac11dc2dfe4ca348f14c7e9eb3549da1bd9d8bae116fd91798b.jpg npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant https://gitlab.com/soapbox-pub/ditto/-/blob/main/WALLET.md If you understand Taproot, that's basically it. From Taproot's standpoint, your Nostr pubkey is the "internal pubkey", then everything else is just taproot. You can get a bc1 address from any Nostr pubkey to send, and if you've received you can spend. Also, I introduced a kind 8333 event for "on-chain zap", which is basically just an event with the target event ID and the Bitcoin transaction ID. That's it. Otherwise it's just a Bitcoin wallet. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant There are countless better ways to spend your time. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Nós nos seguramos na Cruz de Cristo e somos amparados por ela. GN Boa Noite! npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Saving OTS on Nostr #nevent1q…ja4j npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Anyone that tells you that running a selfhosted thing is easy and anyone can do it is lying to you and themselves. That said, with the power of the robot things do change...i dont know what exactly, i would have to ask the robot to propose three possible answers for me of which i pick the best one with some additional comments. npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant HI Nostr, Its so very late that the birds remind me it is very early. But, i / the robot, produced a new type of OTS handling on Nostr, to replace NIP03. Everything except this post (yes i handpeckt this entire thing) is written by the bot, so especially at this stage take things with a grain of salt, because even I have not read this NIP it published yet: #naddr1qq…d2ft But there is not just a spec, there is a full implementation for relays, clients and a special database designed to handle and store OTSproofs. All together in what is called the OTSuite. https://image.nostr.build/e9f27b5e6d58bb23b672d9c1ae19b5c7c69563ba7ed04f3cae3d43dd1e8e9f74.png With 3 different GUI apps, for each system one: A db that shows you in a fancy way that, and how, things are verified (and a bunch of settings and knobs and bells and whissles) https://video.nostr.build/22733d991d2bc9bf2a2b04e68ddddf7a83e84e9f4092e7a77a6b22522d4f7fcc.mp4 There is a client that can apply the new timestamping method on Nostr events right now today! https://image.nostr.build/1974c813e9223eb63702899594a1128f49d013fd1f727b3d7e85efe3e5e5bba2.png And an OTS aware relay: https://image.nostr.build/07c72b1867ab46a918d793f71e401ad88e370fc5d1161ea547b45acc915a33cd.png They are all connected such that this post from @npub1ej4…ndrm came up, when the client found a bunch of 1040 events, and wondered what original events were tied to them. I decided to ''upgrade'' his event, a little demo-spec that performs the new trick on the old NIP03 standard. https://image.nostr.build/fe0cc2454dec9069778b5899b083110f47e906ee2478bb662d6156c53129b4f7.png I marked the event ID so you can see it is the same as here in the OTS proof database, what it indeed passes verify. The client extracts OTS proofs from kind1040 events, and sends them to the db automatically: https://image.nostr.build/cb7f84927f38926b64185c28410ff8e850ab89d3fcebd7901bb07085a13e74aa.png But as you can see, the db itself is fully capable of verifying all the proofs. Even Peter Todd's old NIP03 style proof, because it is just another OTSproof after all. Things land on the relay just fine. https://image.nostr.build/968842bcf57e618465d5f28145c2c02798e600421ae7a131ae567f8be8e061be.png Thats it. I want to reiterate that I have no idea what the robot wrote, other than that it works. so be careful. It is opensaus: https://gitworkshop.dev/npub1d4cjf5pr2aqppn2a8t4xrvnz52uka80lgxyfzqkjcd9qtz59nmpq33j02n/relay.ngit.dev/otsuite GN/GM npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant The relay you choose only partly affects how many people you reach, it should not impact the people that follow you. Also relays are super undefined so they can have all sorts of purposes. In any event, after all those years i have protocol fatigue, i already had it before Nostr, and now there is Nostr, I am glad i am done looking at protocols, because Nostr appears to be for the most part the be-all-end-all. So unfortunatly i cant be bothered to look at bitsocial (or much of anything else, have not looked at FIPS either and that is a Nostr thing), but i wish you the best npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant Btw, after this post i got the robot to admit it. Robot: What we'd lose The "merkle-extension" property as a verified novelty. Today's spec's central technical claim is: stamp the bundle's merkle root once; per-leaf proofs are derivable. We verified this end-to-end. Under your design, that property doesn't exist because there's no merkle to extend — proofs are already per-leaf. So the OTS-extension test harness becomes uninteresting (the "extension" is now trivial: the proof IS the per-leaf proof, no derivation needed). This is a feature loss only in the spec-novelty sense; functionally we lose nothing — per-leaf proofs that travel with content are precisely what your design produces. .... You guys have no idea how fucking in love the robot was with this idea earlier, totally the best thing since sliced bread, the main pillar that justified the existence of my creation... >> This is a feature loss only in the spec-novelty sense; functionally we lose nothing fuck you 2 claude #nevent1q…kwwa npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant yes, i am indeed talking about offloading publishing as well. Its not just for the client's sake, but more so the user. I have a need for this within TEPP, where permissions dictate to what relays things are supposed to go; the TEPP engine can run inside the client as well, that is all fine and preferable for a bunch of reasons, but if it doesnt there is no way to enforce things. But my main argument here is not any use justification really, my main argument is that with signer, i am in the position to ignore a client, publish it ''myself'', get an error from the client, but still have the event pop up. Ergo, the spec should simply allow for a flag to settle expectations to avoid this error.....because you cant stop me from doing what i am going to do, which at the end of the day works, despite the now meaningless errors. Now it could be a different spec all together, that also handles query construction, basically turning the ''signer'' into a full client but without any render capabilities (reducing the user-apps into render-boxes). Based of off this ''NIP'' both the input and output (and as a result also the signing) could be offloaded completely. This way we dont have to touch the remote signing standard (it would simply be a more fancy standard replacing it)....but.....since its just 1 stupid flag for clients to not expect the signed event back, i'd say it worth it tackling this aspect directly in the remote signing stuff npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant My defense for why this is necessary: Because i can effectively do it now, and it will work, other than that clients get confused. (The signer refuses to respond to the client on a sign request, but does sign and publish the event itself, client will throw an error, note get published all the same....so lets just remove the error) npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw Constant While we are at it, maybe, just maybe, add a flag for signer side publishing