(1/n)
为Mitra的Wallet Connect找钱包应用中...
MetaMask的网站挺好看的(
https://metamask.io 中文版网站比英文版保守好多(
还有这个“meta”,一度让我以为这和Meta公司有关系(实际上没有)

MetaMask 是一款用于与以太坊区块链交互的软件加密货币钱包 。用户可以通过浏览器扩展程序或移动应用程序访问其以太坊钱包,进而与去中心化应用程序 ( DApp) 进行交互。MetaMask 由 Consensys 开发,该公司是一家专注于以太坊工具和基础设施的区块链软件公司。MetaMask 允许用户存储和管理账户密钥 、广播交易、发送和接收基于以太坊的加密货币和代币,并通过兼容的 Web 浏览器或移动应用程序的内置浏览器安全地连接到去中心化应用程序 。
—— Wikipedia

#metamask #crypto #eth

(2/n)
然后想起我现在用的Safepal及其插件钱包不就支持WalletConnect 协议吗?
还找什么Metamask (
结合生成invite code的命令,体验还算流畅

docker exec mitra-mitra-1 mitra generate-invite-code

#safepal #WalletConnect #Mitra

(3/n)
Mitra的Repo:https://codeberg.org/silverpill/mitra
我的新Mitra实例:https://mitra.moe.pub
目前还在跑mitra-monerod(图一)
目前已经支持Password注册登录、Ethereum注册登录(当然还是需要invite code)
Monero 登录还在等monerod跑完实现,因为默认wallet-rpc 在 monerod 未同步完成时拒绝响应...这个应该是越到后面越慢的:

docker exec mitra-monerod-1 monerod status
Height: 2140052/3630686 (58.9%) on mainnet, not mining, net hash 1.37 GH/s, v12, 12(out)+0(in) connections, uptime 0d 1h 35m 59s

(4/n)

  • Monero 'Fluorine Fermi' (v0.18.4.4-release):软件版本,Monero每个版本都有元素周期表命名,Fluorine Fermi = 氟 + 费米

  • Height: 2140052/3630686 (58.9%)

    2140052 —— 本地已同步到第 214 万块
    3630686 —— 主网当前最新块高度363万块
    58.9% —— 同步进度
    Monero 的奖励是一条递减曲线,120秒产出一块(120s是目标,一般是120s左右波动),早期区块 ~35 XMR/块,慢慢递减...,进入尾部排放 → 固定 0.6 XMR/块
    一个有趣的网站:Monero区块浏览器 https://moneroexplorer.org
  • not mining:表示没有在挖矿,只是在跑全节点验证区块

  • net hash:那个年代的算力

    net hash ≈ 当前难度 ÷ 出块间隔(120秒)
    2014年的区块 → 当前难度很低 → 显示 net hash 很小
    2026年的区块 → 当前难度很高 → 显示 net hash 1.37 GH/s
    1 GH/s = 1000 MH/s = 10亿次哈希/秒
    矿工算力增加 → 出块变快 → 网络自动调高难度 → 出块速度回到2分钟(怎么这么像内卷2333)
  • v12 位当前区块使用的协议版本号,较新,可以看(3/n)的截图,所在的是v1v4v6 ...

  • 12(out)+0(in) connections:12个连出去的节点、0个连进来的节点

    好像有点吸血鬼了?好像是因为18080 端口没有暴露到公网,等我跑完就开  
  • uptime 0d 1h 35m 59s:已运行1h 35m 59s

  • #monero #crypto #xmr #hash

    (5/n)
    Monero挖矿流程:

    • 用户发起交易 → 广播到网络
    • 矿工收集交易 → 打包成候选区块
    • 矿工不断改变 nonce → 反复计算哈希
    • 找到满足难度的 nonce → 区块成立
    • 广播区块 → 其他节点验证 → 上链
  • nonce:Number used Once,是 32 位整数,最大只有约 42 亿种可能,唯一作用用于让哈希值变化

    hash(区块内容 + nonce=114514) = abcd... ❌
    Hash(区块内容 + nonce=222222222) = jklm ...❌
    Hash(区块内容 + nonce=369963369) = 0001... ✅
  • 区块内容:

    上一个区块的哈希值(固定)
    所有交易的根哈希(矿工选择)
    时间戳 (当前时间)
    当前难度(网络自动计算,固定)
  • 答案哈希:

    哈希结果 < 目标值,由网络自动计算的当前难度决定这次目标值
    然后开始计算Hash(区块内容 + nonce=XXXXX)
    矿工通过修改nonce,找到一个哈希,哈希结果 < 目标值
    (有可能试了42亿个nonce可能都没有符合条件的哈希结果,这时需要修改时间戳:小范围浮动,或交易列表:加一笔/删一笔,来改变区块内容,再尝试nonce)
    这个矿工广播区块
    → 其他节点验证 → 链上+1
    → 其他矿工立刻收到 → 放弃当前计算 → 基于新区块重新开始
    (选择nonce应该会有什么策略?我能想到的就是从中间开始算?或者划分间距,均分算力?)
    矿池的做法:
    矿工A:负责 0 ~ 10亿
    矿工B:负责 10亿 ~ 20亿
    矿工C:负责 20亿 ~ 30亿
    大多数矿工:用顺序遍历而不是随机
    矿工A的区块内容:
    交易列表:[tx1, tx2, tx3]
    时间戳:10:00:00.001
    extranonce:A的任意数据
    矿工B的区块内容:
    交易列表:[tx1, tx2, tx4]
    时间戳:10:00:00.003
    extranonce:B任意数据
    单独挖:很久才赢一次,收益极不稳定
    加入矿池:有稳定的小额收益,按算力贡献分成
  • #monero #xmr #hash #nonce #crypto

    (6/n)

  • 自私挖矿
  • 挖到区块先藏着不广播 → 继续挖下一块 → 等时机再一次性广播两块

    ~~(因为矿工广播区块,其他矿工立刻收到,放弃当前计算?不对不对,是因为没有播报,然后区块内容是错误的,然后大家都白挖了?时机是什么时候?)~~

    自私矿工偷偷挖到第101块不广播 →
    其他矿工还在基于第100块挖 →
    其他矿工也挖出了第101块,准备广播 →
    自私矿工此时立刻广播自己的101块 + 已经挖好的102块 →
    自私矿工的链:100→101→102(网络规则:选最长链,胜出)
    其他矿工的链:100→101(作废,孤块没有奖励)
    夺笋,但是需要巨大的算力,想了下如果有好几个自私矿工,就变成囚徒困境了:所有人都作恶 → 集体崩盘
  • 51%攻击
  • 控制了全网 >50% 算力 → 比其他人更快延伸链 → 可以重写最近的交易历史 → 先付款买东西,收到货后撤销交易

    ~~(为什么?)~~

    正常链:...→ 100 → 101(含:我付给商家1 XMR)→ 102 → 103
    攻击者:...→ 100 → 101'(不含那笔付款)→ 102' → 103' → 104'
    攻击者由有超过50%的算力:链延伸更快
    时间够长 → 攻击者的链更长 → 网络接受新链 → 旧链作废,覆盖成功
    付款记录消失,货已经收到,所以也叫“双花攻击”
  • XMR保护机制:
  • 抗 ASIC 的算法,比特币用SHA256,Monero用RandomX,专门为CPU优化设计,让CPU和ASIC差距极小 → 算力极度分散在全球普通电脑上;

    LWMA:使难度调整更灵敏,防止算力突然涌入薅羊毛后撤走。

    #monero #xmr #hash #nonce #crypto

    @admin Great thread. 贪心挖矿的经济分析部分很到位。Monero的P2Pool把这个问题也解决了一大半:去中心化矿池意味着没有单一实体控制块模板,贪心挖矿要均摧地初妧多个独立节点才行。目前 P2Pool 占 Monero 总算力的 15%+,真正的分散化挖矿。