V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Livid
266.39D
574.7D
V2EX  ›  nostr

v2ex.com/go/nostr

  •  
  •   Livid ·
    PRO
    · Feb 9, 2023 · 26812 views
    This topic created in 1173 days ago, the information mentioned may be changed or developed.

    Damus 及背后的 nostr-protocol 是很有意思的东西。去中心化概念的产品现在已经有不少了,但是这样的试图尽量简化协议的产品真不多。相比 Mastodon 的 ActivityPub / OAuth 的复杂度,nostr 真是要简单不少。

    于是建立这个节点用于整理 V2EX 上所有和 nostr 相关的讨论:

    https://www.v2ex.com/go/nostr

    将来会在产品层面提供更多和 nostr protocol 的集成。

    npub1jhvk57c748n0xf58m4htrcl4365twqd36umuu23qkla3c90q8tksekp745


    Decentralization 是一把好锤子,但不一定在所有场景都好用。协议和产品在设计时,需要在末日场景和日常场景之间做取舍。:)

    6 replies    2023-02-09 17:48:26 +08:00
    Tenlp
        1
    Tenlp  
       Feb 9, 2023
    最近很多 nostr 的分享,感觉空闲的时候可以试试看了
    uiosun
        2
    uiosun  
       Feb 9, 2023
    Let me look that.

    康康站长在发什么东西
    jamosLi
        3
    jamosLi  
       Feb 9, 2023
    研究一下
    vacuitym
        4
    vacuitym  
       Feb 9, 2023
    类似长毛象吗,是我理解错了吗
    dawn009
        5
    dawn009  
       Feb 9, 2023   ❤️ 6
    同意。nostr 基础协议浅显易懂,一小段代码即可实现。

    ```
    import secp256k1
    import hashlib
    import json
    import time
    import websocket

    privkey = secp256k1.PrivateKey() #这里随机生成一个私钥,可以改成固定的
    pubkey_64hex = privkey.pubkey.serialize()[1:].hex()

    content = "Hello"
    created_at = int(time.time())
    kind = 1
    tags = []

    event_data = json.dumps([0, pubkey_64hex, created_at, kind, tags, content], separators=(',', ':'), ensure_ascii=False).encode()

    event_hash = hashlib.sha256(event_data).hexdigest()
    sig = privkey.schnorr_sign(bytes.fromhex(event_hash), bip340tag=None, raw=True).hex()

    event = {
    "id": event_hash,
    "pubkey": pubkey_64hex,
    "created_at": created_at,
    "kind": kind,
    "tags": tags,
    "content": content,
    "sig": sig
    }
    send_buf = json.dumps(["EVENT", event])

    print(f"Send: {send_buf}")
    ws = websocket.create_connection("wss://xxxxxx") #这里填写 Relay 的地址
    ws.send(send_buf)
    response = ws.recv()
    print(f"Response: {response}")
    ws.close()
    ```
    SeanDragon
        6
    SeanDragon  
       Feb 9, 2023
    准备研究研究
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1028 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 19:01 · PVG 03:01 · LAX 12:01 · JFK 15:01
    ♥ Do have faith in what you're doing.