NostrTrust Introduction 关于 nostrtrust 的一点说明。 View article →
nostr_cn_dev
npub1l5r0...m9jm
Developed the following products:
- NostrBridge, 网桥转发
- TaskQ5, 分布式多任务
- NostrHTTP, nostr to http
- Postr, 匿名交友,匿名邮局
- nostrclient (Python client) .
-nostrbook, (https://nostrbook.com) 用nostr在线写书
https://www.duozhutuan.com nostrhttp demo
x可以访问,relay的数据拉不下来。
也是奇怪。他怎么知道我访问的是relay。 View quoted note →
现在 发帖 看帖子 都困难了,你们呢?
NostrTrust 专注于nostr社区的 relay可控和用户的可信任问题,
通过积分算法解决用户的信任体系。
安全可控的nostr社区,提升社区的价值,解决有效社交。
当前的nostr社区relay里面充满了 垃圾内容,大量垃圾pubkey在不停的创造污染信息。这一切的源头都是他们利用社区空子来产生无效内容。
很多relay为了公平,允许大家随便发送内容,这原本是一件好事情,让真用户很爽。
但是这就给垃圾留了机会,如何保证普通用户的权益,不给垃圾留空间。 需要从2个方面入手。
1. relay要有一定的管理入口,管理员通过管理程序 封禁用户和删除帖子;
2. pubkey的积分算法。让优质用户有更多的展示和推荐;让垃圾pubkey消失的无影无踪。
NostrTrust 致力从这2方面入手来提升nostr的用户体验。
nostr 是一个开放性的,强技术社区,很多创意在这里都可以实现。非常的有吸引力。 但是 不接受政府监管而且没有一套 删帖管理帖子的条约还是不够健康。 违法的东西还是应该删了。应该有删除的规则才更健康。
nostr-tools 删除了 nip96
import NDK from "@nostr-dev-kit/ndk";
// Create a new NDK instance with explicit relays
const ndk = new NDK({
explicitRelayUrls: ["wss://a.relay", "wss://another.relay"],
}); 删除了 websocket-polyfill的依赖。
为什么? 今天这2个问题要搞明白。
复刻ubuntu桌面的背景图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>三色渐变波浪背景</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
accent: '#F91171',
purple: '#940ECD',
orange: '#F96711'
},
fontFamily: {
inter: ['Inter', 'sans-serif'],
},
}
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.content-auto {
content-visibility: auto;
}
@keyframes wave {
0% {
transform: translateY(0) translateX(0);
}
50% {
transform: translateY(10px) translateX(5px);
}
100% {
transform: translateY(-10px) translateX(-5px);
}
}
}
</style>
</head>
<body class=" ">
<div class=" ">
<!-- SVG 波浪背景 -->
<div style="top: 0; left: 0; width: 100vw; height: 100vh;">
<svg width="100%" height="100%" id="svg" viewBox="0 0 1440 690" xmlns="http://www.w3.org/2000/svg" class="transition duration-300 ease-in-out delay-150">
<defs>
<linearGradient id="gradient" x1="0%" y1="50%" x2="100%" y2="50%">
<stop offset="5%" stop-color="#F78DA7"></stop>
<stop offset="95%" stop-color="#8ED1FC"></stop>
</linearGradient>
</defs>
<rect x="0" y="0" width="1440" height="700" fill="#940e73ff"></rect>
<!-- 协调的渐变定义(全部基于主色系) -->
<linearGradient id="linear-gradient-r0">
<stop offset="0%" stop-color="#ff0005ff"></stop>
<stop offset="100%" stop-color="#ff0092ff"></stop>
</linearGradient>
<linearGradient id="linear-gradient-r1">
<stop offset="0%" stop-color="#940e73ff"></stop>
<stop offset="100%" stop-color="#ff0092ff"></stop>
</linearGradient>
<linearGradient id="linear-gradient-r2">
<stop offset="0%" stop-color="#d4006bff"></stop> <!-- 中间色 -->
<stop offset="100%" stop-color="#ff0005ff"></stop>
</linearGradient>
<linearGradient id="linear-gradient-r3">
<stop offset="0%" stop-color="#940e73ff"></stop>
<stop offset="100%" stop-color="#ff005dff"></stop> <!-- 深粉色 -->
</linearGradient>
<linearGradient id="linear-gradient-r4">
<stop offset="0%" stop-color="#ff0092ff"></stop>
<stop offset="100%" stop-color="#940e73ff"></stop>
</linearGradient>
<linearGradient id="linear-gradient-r5">
<stop offset="0%" stop-color="#FF3D4FFF"></stop> <!-- 柔和的红色 -->
<stop offset="100%" stop-color="#FF6B6BFF"></stop> <!-- 深粉红色 -->
</linearGradient>
<linearGradient id="linear-gradient-r6">
<stop offset="0%" stop-color="#FF7E7AFF"></stop> <!-- 略带橙调的珊瑚红 -->
<stop offset="100%" stop-color="#FF5262FF"></stop> <!-- 比r5更明亮的粉红 -->
</linearGradient>
<!-- 新增上半部第一条波浪 (最浅层) -->
<!-- 新增上半部第二条波浪 (中层) -->
<path d="M 0,700 L 0,100 C 53.50515463917526,95.87628865979381 107.01030927835052,91.75257731958763 168,100 C 228.98969072164948,108.24742268041237 297.4639175257732,128.8659793814433 362,135 C 426.5360824742268,141.1340206185567 487.1340206185567,132.78350515463918 550,135 C 612.8659793814433,137.21649484536082 678,150 742,160 C 806,170 869.8659793814433,177.21649484536082 928,175 C 986.1340206185567,172.78350515463918 1038.5360824742268,161.1340206185567 1105,155 C 1171.4639175257732,148.8659793814433 1251.9896907216495,148.24742268041237 1315,145 C 1378.0103092783505,141.75257731958763 1423.5051546391752,135.8762886597938 1440,130 L 1440,700 L 0,700 Z"
stroke="none" stroke-width="0" fill="url(#linear-gradient-r0)" fill-opacity="0.22" class="transition-all duration-300 ease-in-out delay-150 path-0b"></path>
<!-- 原第一层 -->
<path d="M 0,700 L 0,105 C 67.94421944035346,98.44882179675994 135.88843888070693,91.89764359351989 190,86 C 244.11156111929307,80.10235640648011 284.3904639175257,74.85824742268039 347,65 C 409.6095360824743,55.1417525773196 494.54970544919,40.66936671575847 564,55 C 633.45029455081,69.33063328424153 687.4107142857142,112.46428571428572 736,133 C 784.5892857142858,153.53571428571428 827.8074374079529,151.47349042709868 882,144 C 936.1925625920471,136.52650957290132 1001.359536082474,123.64175257731958 1069,107 C 1136.640463917526,90.35824742268042 1206.7544182621502,69.95949926362297 1269,69 C 1331.2455817378498,68.04050073637703 1385.6227908689248,86.52025036818851 1440,105 L 1440,700 L 0,700 Z"
stroke="none" stroke-width="0" fill="url(#linear-gradient-r2)" fill-opacity="0.265" class="transition-all duration-300 ease-in-out delay-150 path-0"></path>
<!-- 原第二层 -->
<path d="M 0,700 L 0,245 C 42.109536082474236,243.9959499263623 84.21907216494847,242.9918998527246 148,250 C 211.78092783505153,257.0081001472754 297.2332474226804,272.0283505154639 356,261 C 414.7667525773196,249.97164948453613 446.8479381443299,212.89469808541975 510,206 C 573.1520618556701,199.10530191458025 667.375,222.3928571428571 732,220 C 796.625,217.6071428571429 831.65206185567,189.5338733431517 885,206 C 938.34793814433,222.4661266568483 1010.0167525773197,283.47164948453604 1083,290 C 1155.9832474226803,296.52835051546396 1230.2809278350514,248.57952871870398 1290,232 C 1349.7190721649486,215.42047128129602 1394.8595360824743,230.21023564064802 1440,245 L 1440,700 L 0,700 Z"
stroke="none" stroke-width="0" fill="url(#linear-gradient-r3)" fill-opacity="0.4" class="transition-all duration-300 ease-in-out delay-150 path-1"></path>
<!-- 原第三层 -->
<path d="M 0,700 L 0,385 C 45.83891752577321,405.78092783505156 91.67783505154642,426.56185567010306 161,437 C 230.32216494845358,447.43814432989694 323.1275773195876,447.5335051546392 389,436 C 454.8724226804124,424.4664948453608 493.8118556701031,401.3041237113402 544,377 C 594.1881443298969,352.6958762886598 655.6249999999999,327.25 712,332 C 768.3750000000001,336.75 819.6881443298969,371.6958762886598 881,382 C 942.3118556701031,392.3041237113402 1013.6224226804122,377.96649484536084 1084,373 C 1154.3775773195878,368.03350515463916 1223.8221649484537,372.4381443298969 1283,376 C 1342.1778350515463,379.5618556701031 1391.088917525773,382.28092783505156 1440,385 L 1440,700 L 0,700 Z"
stroke="none" stroke-width="0" fill="url(#linear-gradient-r4)" fill-opacity="0.53" class="transition-all duration-300 ease-in-out delay-150 path-2"></path>
<!-- 原第四层 -->
<path d="M 0,700 L 0,525 C 72.49226804123711,524.3845729013256 144.98453608247422,523.769145802651 194,524 C 243.01546391752578,524.230854197349 268.5541237113402,525.3079896907216 333,510 C 397.4458762886598,494.69201030927843 500.79896907216494,462.9988954344625 565,473 C 629.2010309278351,483.0011045655375 654.2499999999999,534.6964285714287 711,530 C 767.7500000000001,525.3035714285713 856.2010309278352,464.2153902798232 926,472 C 995.7989690721648,479.7846097201768 1046.94587628866,556.4420103092784 1098,564 C 1149.05412371134,571.5579896907216 1200.0154639175257,510.01656848306334 1257,492 C 1313.9845360824743,473.98343151693666 1376.9922680412371,499.49171575846833 1440,525 L 1440,700 L 0,700 Z"
stroke="none" stroke-width="0" fill="url(#linear-gradient-r5)" fill-opacity="1" class="transition-all duration-300 ease-in-out delay-150 path-3"></path>
<!-- 新增第六层波浪 (与第五层形成明显对比) -->
<path d="M 0,700 L 0,600
C 40,630 80,570 160,590
C 240,610 320,650 400,620
C 480,590 560,570 640,610
C 720,650 800,670 880,630
C 960,590 1040,550 1120,590
C 1200,630 1280,670 1360,640
C 1440,610 1480,590 1520,620
L 1520,700 L 0,700 Z"
stroke="none" stroke-width="0"
fill="url(#linear-gradient-r6)"
fill-opacity="1"
class="transition-all duration-300 ease-in-out delay-150 path-6"></path>
</svg>
</div>
<footer class="relative z-10 py-8 text-center text-gray-400">
<p>© 2025 三色波浪背景 | 使用Tailwind CSS和Font Awesome构建</p>
</footer>
</div>
<script>
</script>
</body>
</html>
一直想换的,今天终于换了。 View article →
nostr 如何对pubkey做积分体系。对每个pubkey做评分?
评分体系是信用体系的基础。 只有评分体系+信用体系建立后;
nostr社区才有更大的发展。

Shopstr
Shop freely.
有没有一种可能性 nostr并不是不能删帖。他应该和BTC类似的一个有个网络共识, 达成了共识算法的某个 pubkey或者某个贴子。就可以被删除。 relay server 可以从一个链上去获取这个共识的结果。
垃圾的帖子或者垃圾的pubkey 就应该被禁止。
大家希望建立一个自由宽松的网络环境,但是这个环境也应该有规则,破坏规则的就应该被禁止。
另外 被修改的帖子,还保存在服务器上,他们被保存的意义在哪里,是保存变化还是保存所有的内容,这个有没有冗余的算法可以节省空间。
nostrbook.com desktop 版本的主界面。现在 yakihonne发帖怎么都会出现2个一样的。 nostr:note1kfrvap
新做一个模板:
```
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>渐变背景示例</title>
<style>
body {
margin: 0;
height: 100vh;
/* 线性渐变背景 */
background: linear-gradient(to right, #6620FC , #f3e5f5);
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
}
.menu {
position: absolute;
left: 10px; /* 距离左边10px */
top: 10px; /* 距离顶部10px */
width: 60px; /* 菜单宽度 */
display: flex;
flex-direction: column;
justify-content: flex-start; /* 改为从顶部开始排列 */
align-items: center;
padding: 10px 0;
color: white; /* 设置文字颜色为白色 */
gap: 40px; /* 减少菜单项之间的间距 */
}
.menu-item {
display: flex;
flex-direction: column;
align-items: center;
}
.menu-item svg {
fill: white; /* 设置图标颜色为白色 */
width: 32px;
height: 32px;
margin-bottom: 4px; /* 减少图标与文字之间的间距 */
}
.content-box {
position: absolute;
left: 80px; /* 距离左边80px */
top: 10px; /* 上边距10px */
bottom: 10px; /* 下边距10px */
right: 10px; /* 右边距10px */
background-color: white;
border-radius: 8px; /* 圆角 */
box-shadow: 0 4px 8px rgba(0,0,0,0.1); /* 增加阴影效果让盒子更突出 */
overflow: auto; /* 如果内容超出容器大小则显示滚动条 */
}
h1 {
text-align: center;
color: #4a148c;
padding: 20px; /* 根据需要添加内边距 */
}
</style>
</head>
<body>
<div class="menu">
<div class="menu-item">
<!-- 第一个菜单项的SVG图标 -->
<svg viewBox="0 0 24 24">
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
</svg>
<span>菜单1</span>
</div>
<div class="menu-item">
<!-- 第二个菜单项的SVG图标 -->
<svg viewBox="0 0 24 24">
<path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5h3V6h2v6h3l-5 5z"/>
</svg>
<span>菜单2</span>
</div>
<div class="menu-item">
<!-- 第三个菜单项的SVG图标 -->
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 15l-5-5h2v-3h6v3h2l-5 5z"/>
</svg>
<span>菜单3</span>
</div>
</div>
<div class="content-box">
<h1>欢迎来到nostrbook.com</h1>
<!-- 这里可以放置更多内容 -->
</div>
</body>
</html>
```使用nostr 制作的app,比较新颖的是哪个?有一定的创造性质的。
公开密钥让大家一起用同一账号算其中一个。其他的还有吗?
nostrbook.com 升级了code的渲染; 此次渲染成功意味着我我们可以增加更多的marked 的兼容 plugin。
让nostr的 30023 变的更好看,未来我会增加更多的 plugin