Hacker Newsnew | past | comments | ask | show | jobs | submit | jb55's commentslogin

prs welcome


i updated the wording, hope its more clear



For what it’s worth, I found it interesting. I like your verve.


Haha, good to take the classic HN condescension on the chin ;)


My comment was worded a bit too harshly, sorry about that, I certainly wouldn't have worded that way in a personal message.

As I mentioned the hexadecimal printing coincidence is a neat fact, I was just excited when clicking the link to find a novel bitset idea. In my disappointment to find the standard bitset (albeit with 16-bit limbs) I reacted a bit too harshly. And as per https://xkcd.com/1053/, just because something isn't new to me doesn't mean it's not new to anyone.


I will remove the novel wording just for the hacker news geniuses. I have been programming for 26 years and have never encountered this pattern, nor could I find it in any libraries, which is why I decided to wrap it up in a library.

If a simple bitset like this exists in a library somewhere I would love to see where! Most implementations I've seen over-complicate it for simple use cases like this.


You may enjoy this page then. https://graphics.stanford.edu/~seander/bithacks.html

Bunches of bit twiddling things people like to do in different places for either speed/space.


I have had the experience of explaining to coworkers how bitwise operators even work more than once. I think sometimes people overestimate the average programmers knowledge when it comes to bit operations. modern programming is so detached from having to use that for day to day work.

I am aware of the bithacks page, but I just found encoding the bit coordinate in the ID itself so clever.


Can I ask, how would you do it otherwise? Is there any other way? Or is the supposed novelty here that the two values are packed into the same byte instead of having some zero bits between?


Yeah, you weren't going to win this. Most developers I've met would have approached this from one of the two extremes:

"Lol, this is the obvious implementation."

or

"Lol, just use a boolean."

That is to say, those that might be interested would already know. I'd expect very little in between.

Fwiw, I do think noticing the id readability is notable from a reverse engineering standpoint.


C++ std::vector<bool>


Images are not stored on relays, so they would not be targeted. The image hosts have the liability, not nostr.


I guessing this is because you are used to an algorithm that is constantly showing you the most liked content. average day to day discussions between humans can be pretty shallow, nostr feels more like shooting the shit with your friends instead pumping rage bait and dopamine into you brain 24/7

This is also why I suspect people are generally nicer and happier on nostr, there is much less fighting because there is no algorithm that boosts angry and controversial threads.

not to say algorithms can't happen on nostr, there just aren't many in clients yet.


Correct user counts need to have a web-of-trust applied if you want an accurate count of "real followers", but I suspect that's the same on X as well.

As one of the largest accounts on nostr I can say there aren't many "crypto" fans on the network, those are all on farcaster. Lots of bitcoiners and freedom lovers though! Maybe try following #grownostr, there is lots of non-"crypto" content, mostly gardening, homesteading, etc.

You have to curate your feed to see the things you want by following specific people. There are no algorithms that automatically tailor the feed to your interests. If you go into the "global" or "universe" feed you will see lots of crap, but that is just noise that can be filtered out by setting your global feed to only show paid relays.


Hey, author of https://damus.io here (ios twitter-like nostr client)

> First, I want a replication strategy. Nostr messages get lost in time, and many of the clients end up just blasting an entire message history at your client. Because there's no clue in the protocol how messages are related other than a timestamp this also means you can fake timestamps and write fake messages in the future or back in time

You can do this with email or git too and it doesn't make it any less useful. I actually like the backdating feature as it allows you to copy your account to a new key.

As for replication, at damus I am working on https://github.com/damus-io/nostrdb which is intended to be a "sqlite for nostr". I plan on implementing set-reconciliation based syncing with strfry relays (using a technique called negentropy), so that replication is very efficient.

> Second, I don't like that many Nostr clients are using the same signing key for messages as they do for lightning transactions.

This is simply not true.

> Third, someone needs to delete some of these NIPS. The arms race to make Nostr as complex and difficult as possible to implement is not going to do much for the ecosystem in the long run. In the beginning Nostr was simple to implement from scratch, they should get back to that!

All nips are optional except for nip01, you can ignore them all for the most part.

> Fourth, it needs a dedicated blob store protocol. Yah, I know IPFS isn't great but someone should come up with something that is simple and works.

It does not, in the same way email or git or any text-based protocol doesn't need a dedicated blob store. These are separate concerns and they should be a separate protocol. nostr clients can of course integrate and link to any blob store it wants via new NIPs that describe this. I believe there are a few already in the nips repo.

Cheers!


> > First, I want a replication strategy. Nostr messages get lost in time, and many of the clients end up just blasting an entire message history at your client. Because there's no clue in the protocol how messages are related other than a timestamp this also means you can fake timestamps and write fake messages in the future or back in time

> You can do this with email or git too and it doesn't make it any less useful.

In the sense that you can fake timestamps, you're of course correct on git and anything else beyond public blockchains.

In the other sen, git is a counter-example of what I take the author's main point to be, in that commits do have an mandated relationship and linkage that Nostr noted don't.


> Hey, author of https://damus.io here (ios twitter-like nostr client)

Haha, like Nostradamus, very clever name!


missed the opportunity to nostra.damu.us ?

That remembers me off project.ioni.st and now iam sad.


> > Second, I don't like that many Nostr clients are using the same signing key for messages as they do for lightning transactions.

> This is simply not true.

I'm sorry if I'm wrong about this one. How does it work?


Zaps just put a signed nostr note inside a lightning invoice so that clients can show that a specific user send some amount of money to some note or profile. clients request lightning invoices via lnurl (an http lightning specification). You could do the same thing for any other fiat or crypto system if you want to, but nostr was mainly build by bitcoiners which is why there is lots of bitcoin tech integrated, but its completely optional.


How do you request your Zaps balance to send it somewhere else (like to a Bitcoin wallet)? Maybe this is a Lightning thing and not a Nostr thing.

I guess I assumed it was based on the private key you generated when you got started on Nostr and if that private key became compromised then the Zaps could go to whoever had the private key.

Perhaps there is a document somewhere that explains this.


There is no "zaps balance". Zaps are just receipts of lightning payments.

The basic idea is that a lightning node will detect when the invoice with a nostr note inside is paid, and then send the receipt to nostr as a nostr note, with the original bolt11 invoice inside with the signature from the user who sent the zap.

It's all described by NIP-57, a spec I put together to support this:

https://github.com/nostr-protocol/nips/blob/master/57.md

I was working on c-lightning at the time and I thought it would be really cool to replace the "like" button with an instant bitcoin micro-payment. I think it worked out quite well! There are many sites utilizing zaps in all aspects of the protocol, such as a decentralized market for AI job requests (data vending machines), zapgoals and zap fundraisers. All built on this note type. protocol synergy!


I read NIP-57 just now.

I guess what confused me is I've used Nostr clients where everyone has a Zap button. Who is holding onto those lighting receive addresses until they specify where they want the funds to go?

Like if someone Zaps me right now, I haven't specified a place for those Zaps to go. Do I call the Damus staff and they send the total of the micropayments Zapped to me over Nostr to a Bitcoin receive address? I don't think anyone has Zapped me, I'm just trying to wrap my mind around how it works since I was wrong earlier.

Maybe I need to set aside an afternoon and read about how Lighting works, perhaps I just don't get that protocol.


> if someone Zaps me right now, I haven't specified a place for those Zaps to go

then you can't be zapped

you can only be zapped if your profile has a tag in it that tells people where to send your zaps to

without that, a zap button shouldn't show up, and if it does show up, it shouldn't do anything


Ok, this makes sense. I must have been using a client that had 'Zap' icons and because I didn't have a Zap balance I just assumed the buttons didn't work because I had no balance.

I didn't realize every single person who downloads a zap-supporting client had to also set up a separate app to handle the micro-transactions and host that app somewhere where it is available 24/7 in case their post gets zapped.


it's not that big a deal if you use a hosted wallet. There's quite a few options out there, like stacker.news or wallet of satoshi.


Lightning is an online protocol, so your wallet must be available to complete the transaction. No online wallet, no zaps.


The damus relay rate limits even if you have multiple keys


What does it rate-limit based on? If it's just IP address then I doubt that'll do much good as it won't stop any spammer worth their salt and yet could affect large groups stuck behind a NAT device.


Author of damus[1] here. We’ve seen a crazy growth in nostr in the past couple of months. Damus itself sees about 1000 to 10,000 download per week, and we’re up to about 500k to 1mil+ users (hard to get exact numbers on a decentralized network). Exciting times for social networking protocols!

[1] https://damus.io


I like alternatives to big sites but this sentence makes me nervous: "Bitcoin & , the native currency of the internet." Is there a need for this?


Its optional, you don’t need to attach a lightning address to your profile and you will receive no bitcoin for your posts.


I am neutral on cryptocurrencies, but I agree that whenever I see people lumping cryptocurrency and cryptographically-secure messaging together it’s a huge red flag.

The UX for key management should be monstrously different between shitposting and the instantaneous loss of money, for starters.


Damus does not manage your lightning wallet. All it does is open lightning invoice links in an external wallet when you want to zap someone.

All of this is optional and opt-in.


I'm with you on every crypto except Bitcoin, but nothing about bitcoin should make you nervous.

Its nice you live in a country with a stable currency that doesnt hyperinflate. Not everyone has this luxury. Zimbabwe and Venezuela come to mind.


Look at all that virtue.

Bitcoin started a literal tsunami of financial crimes, I feel bad for hyperinflated countries and if they find some use in bitcoin that's great for them, but I for one will stay the fuck away from anything blockchain related if I can help it.


That's how my grandmother feels about the internet.


Turns out the internet has proven upsides, not sure you can say that about crypto with a straight face.


On a similar note, cellphones/internet allow all sorts of crime. Cars, make it easy to commit crimes. Food, allows people to use energy to fuel themselves to commit crimes. Water/boats/international trade: huge for crime. Cash, great for crime. Government, could be complicit in crime.

ChatGPT says you used "hasty generalization" fallacy, but I'm not sure that is the correct fallacy. You have a fallacy here.


Nah, that’s not the hasty generalization fallacy. They didn’t say “bitcoin allows for crime to happen”, they said bitcoin has been the center of a huge amount of actual financial crime.

I think that’s the observation fallacy, where you look at what’s happening and then state it out loud.


> but nothing about bitcoin should make you nervous.

The energy consumption of bitcoin does in fact make me very nervous.


If you don't like Bitcoin, you could always just get an address and if you get tipped, sell immediately. I don't see how this is any different than an app with "gems" you can buy and re-sell back to the app. Some games like Entropia[0] have a fixed exchange rate with the dollar, allowing you to "cash out" of the game, if holding game currency isn't your thing.

It's just game currency essentially for the social app. When I think about it like that, it makes me less nervous.

[0] https://account.entropiauniverse.com/account/deposits/#:~:te....


> I don't see how this is any different than an app with "gems" you can buy and re-sell back to the app.

The difference is that the Bitcoin transaction will cause millions of computers to waste a serious amount of electricity calculating hashes over and over.


It uses the Lightning network, which is a separate network using off-chain transactions. The Lightning network crams upwards of infinite transactions into a single on-chain transaction, called a payment channel.


IIRC lightning network transactions only use as much electricity as 10 emails, although I guess at some point a real Bitcoin transaction will happen eventually.


Yeah pretty much. A lightning channel is a bit like putting money down as a retainer for a lawyer, or putting a deposit down in a hotel.

The real transaction happens at the beginning, and another transaction happens at the end when the channel closes and we settle out who gets the remainder.


No one is claiming that "gems" are "the native currency of the internet" though.


It’s okay, it’s only technology. It’s been around for almost two decades and it’s open source. Nothing to be afraid of. You can conquer your fear through diligent studying. Good luck!


Why does it make you nervous?


because 99.999% of cryptocurrency projects are scams


And Bitcoin will roll on, uncaring.


Great response that will help people join in on your cause.


We don’t need people driven by fear.


How is Bitcoin a scam.


I said "cryptocurrency projects" not "bitcoin." it's things that use bitcoin that are scams.


In the case of nostr is tipping sats using Bitcoin Lighting.


Do you think damus is a scam?


agreed.

full disclosure: I’m a bitcoiner.


100% of it is a scam, the only reason you said 99.99 is because blockchain as a technology is worth something. But crypto coins themselves have no value at all in the real world.

One pizza place here, and one bitcoin ATM there does not make a difference. As long as you can't trade real goods and services for crypto coins it is absolutely worthless. And that is why any association with crypto makes intelligent people scared. Because it's inflated by confidence, like a true scam.

The only real goods and services that have kept bitcoin going is a black market of illegal goods and services.


Your last point directly contradicts the claim that "100% of it is a scam". People do actually buy and receive those illegal goods and services; you might not like that fact, but it certainly isn't a scam at that point.

And just so that we're clear, said "illegal goods" include, for example, generic drugs from other countries.


in fairness, of the cryptocurrency black market, 99.999% of that is scams too...

I don't think it's recovered from the silk road and alphabay era?


I don't think Silk Road etc constitute the actual majority of the black and grey markets enabled by cryptocurrency. It's just where most of the media attention is because of stuff like "assassination brokers" etc. Most of it is really mundane stuff, mostly drugs (of either kind). Which is also where long-term repeat customers are valuable, so sellers are hesitant to lose reputation through outright scams.


> As long as you can't trade real goods and services for crypto coins it is absolutely worthless.

As long as you can sell it for USD it's not worthless - you don't other goods/services - although that said the list of those is still growing.

The fact that I can send money (liquid fiat) to a friend without going through paypall/zello/etc. is valuable.

The only thing that could make it a "scam" is the promise of money, which I 100% agree that using crypto to "make money" is stupid and is a massive problem.


> The fact that I can send money (liquid fiat) to a friend without going through paypall/zello/etc. is valuable.

You can do that only because Bitcoin is currently underregulated. Governments will eventually regulate it to enforce money laundering laws and starve DPRK, and then Bitcoin will become even more expensive relative to other options.


> You can do that only because Bitcoin is currently underregulated... Governments will eventually regulate it and then Bitcoin will become even more expensive relative to other options.

Sure, and if that happens then it's value as a liquid fiat will decrease. The idea that "it only goes up and to the moon!" is what has made everyone declare it a scam.

If it currently has a use case then it has value. The currency is not a "scam" but this horrendous idea of treating it as an "investment" is delusional.

I think cryptocurrency has a few very valid use cases, but I think it's been shoved onto everything when it's not even needed (CSGO has been fine without NFTs).


> If it currently has a use case then it has value

The use case is not due to the technology having any benefit but due to current underregulation. The reason people declare it a scam is that the technology does not solve any practical problems better than centralized ledgers.


It isn't just that though. Anything crypto coin related attracts scammers, and changes people's posting incentives. Instead of pandering to the userbase for likes and upvotes, it'll now be for crypto coins.


>>But crypto coins themselves have no value at all in the real world.

Then proceeds to handpick what the real world uses of btc should be excluded from the argument.

No coiners are a special bunch.


How does damus relate to nostr? Your landing page does not explain this at all. Is this because already the concepts of (distinguishing) client and network would be considered too technical for your target audience?


I don’t think it’s important to dive into tech details on the damus homepage. Gmail doesn’t attempt to explain the email RFCs when creating an account.


Fun analogy, but I think a better match would be that Thunderbird immediately says that it is an email program.

From my first look I had no idea whether this is an app to connect to Nostr or a completely separate and iOS only network.


I love Damus and Nostr. Thanks and please keep up the good work.


Any ETA for Damus on Android?


Damus is great but Amethyst is also great already on Android


It's only recommended that you store json and text on relays. It's a text protocol, not a protocol for storing large binary data. Note sizes are restricted as well on most relays.


Usenet is fundamentally text-only. In fact messages need to be 7-bit safe. It's still been a place to distribute binary content for decades.

If I can store multiple messages on a relay I can distribute arbitrary files. So being text-only doesn't really limit anything.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: