Living a Simple Life is a Happy Life

有饭吃,自由自在,就非常开心

关于区块链未来的一些预测

| Comments

最近在翻阅Solana的源码,Solana的POH技术非常有意思,目前它的性能也远远超越了Ethereum,有一些思考和预测记录一下:

  1. POS和POW之争会一直持续下去;
  2. 人们投资数字货币的初衷,是不相信人管理的系统,而相信数学; 所以POW是根基
  3. 但是区块链技术和数字货币要跟现实打通,就必须接受那些有控制欲的人类组织的管理,所以即使没有能源消耗问题,POS一定会有市场
  4. POS链是由人来博弈的,凡是人类争夺控制权的游戏,就一定会有非常多的开局,所以POS链未来会百花齐放,也许每一个国家、每一个公司、每一个组织,甚至每一个人都会发行自己的POS公链
  5. POW链永远只有一条公链占据绝对统治地位,因为这是个完全自由竞争的市场,长期算力一定会汇聚到共识最大的那条链
  6. 最后POW的主场景是价值存储,POS的主场景是应用创新;
  7. POW的链变化少,可能比特币会长期存活并占据C位,而POS技术不断迭代,可能会你方唱罢我登场

如何配置Fail2Ban阻止Web频繁请求

| Comments

这类问题,AI回答已经非常靠谱了;记录一下,仅仅是加强一下记忆;

1. 确认Nginx日志格式

1.1 确保Nginx日志中包含客户端IP($remote_addr),检查Nginx配置(通常位于/etc/nginx/nginx.conf):

1
2
3
4
5
6
http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent"';
    access_log /var/log/nginx/access.log main;
}

1.2 重启Nginx使配置生效:

1
sudosystemctl restart nginx

2. 安装Fail2Ban

1
2
3
4
5
# Ubuntu/Debian
sudo apt update && sudo apt install fail2ban

# CentOS/RHEL
sudo yum install epel-release && sudo yum install fail2ban

3. 创建自定义Filter规则

比如要监控 所有 /hello url下的请求;

新建文件 /etc/fail2ban/filter.d/nginx-url-bruteforce.conf

1
[Definition]failregex=^<HOST> -.*"(GET|POST) /hello/[a-fA-F0-9]{64} HTTP/.*".*ignoreregex=

4. 配置Jail规则

编辑 /etc/fail2ban/jail.local,添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
[nginx-url-bruteforce]
enabled = true
port = http,https
filter = nginx-url-bruteforce
logpath = /var/log/nginx/access.log
 # 允许的最大尝试次数
maxretry = 5
# 在60秒内超过maxretry则封禁
findtime = 60
# 封禁1小时
bantime = 3600
action = %(action_mwl)s

5. 测试Filter规则

使用 fail2ban-regex 测试正则匹配

1
sudo fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/nginx-url-bruteforce.conf

6. 重启Fail2Ban并监控

1
2
sudo systemctl restart fail2ban
sudo fail2ban-client status nginx-url-bruteforce

7. 高级调整(可选)

  • 日志路径:如果日志路径不同,修改 logpath。

  • 封禁时间:调整 bantime(单位:秒,如 86400 封禁1天)。

  • 精确匹配状态码:如需仅封禁500错误,修改 failregex:

用watch命令高亮输出的不同

| Comments

1
watch -d date

-d 参数会将两次输出之间的差异高亮显示;

我赶紧又 man 了一下 watch 命令的选项,又得到了几个对我有用的功能:

-b 参数可以在程序异常退出的时候响铃

-g 参数可以在程序输出发生变化时退出watch命令

还有我最常用的 -n参数,控制watch的间隔

Linux上面很多小命令,是从上世纪70年代的上古UNIX时期一路经过血战竞争才能留到现在的,论设计肯定是精益求精了;

AI未来时代会为我们带来什么

| Comments

最近两年各种AI技术的进步,让人浮想联翩;这也许是关于技术发展的盲目乐观,但爱做梦的人总忍不住去想象未来的科幻场景;

如果AI真的发展到了具有超过人类智慧–注意这里说的是智慧,而不是单纯的智能–的程度,那会对人类社会产生如何的影响呢?

在我看来,这就是一场新时代的文艺复兴;

目前,具有创造力的人类在社会中所占的比例是很小的;这并不是单纯的教育或者智力的问题,而是我们受到的社会物质制约实在太大了;如果给予每个人充分发展的条件,那么我深信,社会上会涌现出数不清的莫扎特,数不清的达芬奇,数不清的爱迪生……

就像网络硬件发展到如今的水平,每个人都能在各类社交平台上秀自己美美的照片,秀自己的日常生活小视频,大家突然发现,自己以及身边的人,都是艺术家;大家也不用等着晚上8点去看几个电视台的综艺节目了,每个人都可以导演自己喜欢的节目;

当AI强大到一定程度后,会出现无比繁荣的共创时代:

  1. 有动手能力的人,也许会一个人完成今天不敢想象的火箭探月工程

  2. 有艺术素养的人,完全可以一个人拍出不朽的影像作品

  3. 有一定专业知识的人,比如程序员,甚至不是自己写APP了,可以为自己订制操作系统,或者软硬件一体产品

未来,是一个一言不合就自己创造工具的时代,今天我们需要数千人协作才能完成的大工程,将来完全可以在AI的帮助下,几个人甚至一个人就能实现媲美今天SpaceX的成就;

未来,科幻片中的天才博士,自己在家后院造一个宇宙飞船,去探索地外文明的故事,也许会在现实中发生;

How to Resize Partition on Linux

| Comments

之前操作Linux,扩容已有分区,一直是手工fdisk删除分区重建搞定的,这种方式不直观且容易出错;最近采用parted操作了以下,发现很直观;

比如我要对 /dev/sda1 从 100GB,扩容至200GB,操作如下

查看当前分区情况

1
2
3
4
5
6
7
# 进入 parted 工具
$ sudo parted
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
# 查看磁盘信息
(parted) print /dev/sda

我只有 /dev/sda1 一个分区,因此很好办

根分区扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 进入 parted 工具
$ sudo parted /dev/sda
# 查看磁盘信息
(parted) print
# 此时应该只有一个分区,直接扩展这个分区
(parted)resizepart 1
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
# 直接输入 yes 确认
Yes/No? yes
# 输入新的结束点
# 这里输入的数值,就是上方输出中 Disk: 后方的数值
End?  [200GB]? 200GB
# 扩展完成之后退出 parted
(parted) quit

用resize2fs 工具扩展文件系统

1
$ sudo resize2fs /dev/sda1

不出意外,应该搞定了;

注意事项

扩容之前,最好用 lsof 查看以下扩容分区,把所有的读写进程都停掉,如果条件允许,umount 这个分区再扩容,更加安全

新纪元共鸣:智能的觉醒-V2

| Comments

基于上一个小说扩写大师; 我将 <新纪元共鸣:智能的觉醒> 这篇文章扩写了一下;

对话的完整过程在这里

这个版本是第二版,虽然有了明显的进步,但是离一篇成熟的作品还很远,我认为目前的ChatGPT能力下,还有许多能够提升的空间;

但是,与其继续优化Promots和交互来提升,我更倾向于提升ChatGPT的能力来做这件事,我期待着GPT5的到来;

文中配图用Dalle3生成;

新纪元共鸣:智能的觉醒

| Comments

ChatGPT4目前最大的限制是输出Token数目,目前一次最多输出1000个Token左右;虽然可以通过切割章节等手段规避,但是目前很难一口气写出情节连贯的故事;同样的,它也没有办法分析中等代码量的一整个编程项目;

这是一篇chatGPT4写的科幻小说,平铺直叙就像说明文,只能算第一版,我希望能找到更好的跟AI交互的方法,用更细致的promots把它改写成一篇引人入胜的故事;