nostr and nostr-sdk v0.25 are out! π¦
Released also v0.0.5 of Python, Kotlin and Swift bindings packages.
https://github.com/rust-nostr/nostr#available-packages
Thanks to nostr:npub17q5n2z8naw0xl6vu9lvt560lg33pdpe29k0k09umlfxm3vc4tqrq466f2y nostr:npub1u8lnhlw5usp3t9vmpz60ejpyt649z33hu82wc2hpv6m5xdqmuxhs46turz nostr:npub1qqpn4ym6tc5ul6d2kjxnzx3sv9trekp53678ut9fe3wrxa6yvhjsnql2ng nostr:npub1rf0lc5dpyvpl6q3dfq0n0mtqc0maxa0kdehcj9nc5884fzufuzxqv67gj6 for contributing.
nostr:npub1v6qjdzkwgaydgxjvlnq7vsqxlwf4h0p4j7pt8ktprajd28r82tvs54nzyr this one is for the custom kind
Not too much time ago the WEF said that they have to focus on the water emergency... because the climate change it's too abstract to understand for someone... π€‘π€‘
Should these 2 events be considered same by nostr relays?
Cc: nostr:npub108kuptq55xrxqc8ttfjqwwhkh7ruur7d3drm2yyp8ul9t86w9g0s3v9usw

No, the ID and signature are the same but the pubkey it's different so one of those events it's invalid
I think there is something wrong with python-nostr library because I tried creating the first event from snocait playground and it worked
Cc: nostr:npub108kuptq55xrxqc8ttfjqwwhkh7ruur7d3drm2yyp8ul9t86w9g0s3v9usw
Take a look to this package: https://pypi.org/project/nostr-sdk/
Thank you Anon for the recurring donations for the Nostr SDK π§‘β‘
I searched your Github name on Amethyst and found this event
nostr and nostr-sdk v0.24 are out! π¦
This release finally include support to `no_std` for the nostr crate.
Thanks to nostr:npub1vjxrxzr5epxxf5qzxeachshvafhcj5utct5dlw60qx7ayvq95mhsypdl8u nostr:npub17q5n2z8naw0xl6vu9lvt560lg33pdpe29k0k09umlfxm3vc4tqrq466f2y nostr:npub1qq7ralu3m693cnw7nhmeh9rnmzgx0cagc5j5cfw70prvhngnsseqazhang for contributing
Will you add also Rust bindings for nostrdb? π¦π
Found another optimization: 1 million ids reconciled in ~100 ms
Performance issues should be solved now: reconciliation of 1 million ids took ~400 ms
This is awesome, thank you!
I'm trying to create a harness for this so we can run it against the test-suite used by the C++ and JS implementations. For example, here's the C++ harness:
https://github.com/hoytech/negentropy/blob/master/test/cpp/harness.cpp
This is as far as I got:
https://gist.github.com/hoytech/96e65fc488fc39c2e782830f38727391
This is pretty much the first Rust code I've ever written, sorry about the bad quality. The problem I'm running into is that the reconcile() and reconcile_with_ids() methods seem to return String. If I understand rightly, Rust strings must be utf-8 encoded right?
In the current implementations, the reconcile messages must be in an 8-bit clean medium (or hex encoded). Same with the IDs (since they are typically hash function outputs). In C++ I use std::string because this allows any u8 values (and doesn't care anywhere about utf-8). In JS I allow Uint8Array values *or* hex-encoded strings.
Can we make the rust interface standardise on something 8-bit clean? Vec
Thank you. I'm still improving and studying better the negentropy protocol.
I converted the code from C++ to Rust in basically a day and half (I'm not a C++ dev so some thing could be converted badly) and are there some things to fix/improve.
Like, I noticed an unstable performance with reconcilie_with_ids method with a set of 50000 items: it usually took 600 ms the final reconciliation but often it took 2 or 4 secs (executing exactly the same code).
Thanks, I'll replace the String with a vector.
BTW, I'm planning to release also bindings for some languages (Kotlin, Swift and Python) using UniFFI, like I have done for rust-nostr libraries.
From my understanding (I can worng), range-based set reconciliation (negenteopy) are good with small set, while BCH-based (minisketch) works better with large set and provide error correction.
Maybe nostr:npub1yxprsscnjw2e6myxz73mmzvnqw5kvzd5ffjya9ecjypc5l0gvgksh8qud4 can correct me or add some more info.
No, I'll try to take a look
nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet what's a good first issue to work on for rust-nostr? learning rust and know python
Hey, I think a good starting point to start working on rust-nostr libs, it's to try implement an easy NIP (like the NIP-30).
