news 2026/4/24 7:44:18

家庭收支链上记账小程序,每笔收支写入链式结构,不可删除,支持家庭成员共同查看,解决账目争议,隐瞒消费问题。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
家庭收支链上记账小程序,每笔收支写入链式结构,不可删除,支持家庭成员共同查看,解决账目争议,隐瞒消费问题。

👉 「家庭收支链上记账小程序(Family Ledger Chain)」

适用于:

✅ 夫妻共同记账

✅ 合租室友 AA 结算

✅ 父母子女共管账户

✅ 解决“钱花哪了”“谁没出钱”的信任问题

一、实际应用场景描述(Scenario)

你和家人共用一个家庭消费记账群:

- 老公刷信用卡

- 老婆付房租

- 孩子买了游戏

- 偶尔现金支出

但经常出现:

- “我明明付了,你怎么不记?”

- “这笔钱不是我花的”

- 一方删记录、改金额

- Excel 被覆盖、聊天记录过期

👉 你们需要一个:

像区块链一样“谁也改不了”的家庭账本

二、引入痛点(Pain Points)

现有方式 问题

Excel / 微信表 可随意修改

记账 App 单人控制、不透明

聊天记录 易丢失

口头对账 无证据

✅ 核心诉求:

每一笔收支

谁记的 + 什么时候 + 金额多少 + 无法删除或修改

三、核心逻辑讲解(Core Logic)

🧠 设计思想(来自区块链课程)

我们用简化版区块链结构:

Block

├─ index

├─ timestamp

├─ payer(支付人)

├─ amount

├─ category

├─ prev_hash

└─ hash

三大保障机制

1️⃣ 链式哈希

- 当前块 hash = f(数据 + 上一个 hash)

- 改一笔 → 整条链失效

2️⃣ 全员可读

- 账本存储在本地 JSON / 文件中

- 家庭成员可随时验证

3️⃣ 不可删除

- 删除即破坏 hash 连续性

四、代码模块化设计(Python)

📁 项目结构

family_ledger_chain/

├── main.py # 入口

├── block.py # 区块结构

├── chain.py # 链逻辑

├── utils.py # 哈希 & 时间

├── ledger.json # 账本存储

└── README.md

1️⃣ utils.py(工具函数)

import hashlib

import json

import time

def calculate_hash(data: dict) -> str:

"""

计算区块哈希(SHA-256)

"""

data_string = json.dumps(data, sort_keys=True)

return hashlib.sha256(data_string.encode()).hexdigest()

def get_timestamp() -> int:

"""

获取当前时间戳

"""

return int(time.time())

2️⃣ block.py(区块结构)

from utils import calculate_hash, get_timestamp

class Block:

def __init__(self, index, payer, amount, category, prev_hash):

self.index = index

self.timestamp = get_timestamp()

self.payer = payer

self.amount = amount

self.category = category

self.prev_hash = prev_hash

self.hash = self.compute_hash()

def compute_hash(self):

data = {

"index": self.index,

"timestamp": self.timestamp,

"payer": self.payer,

"amount": self.amount,

"category": self.category,

"prev_hash": self.prev_hash

}

return calculate_hash(data)

3️⃣ chain.py(家庭账本链)

import json

from block import Block

class FamilyLedger:

def __init__(self, storage_file="ledger.json"):

self.chain = []

self.storage_file = storage_file

self.load_chain()

def create_genesis_block(self):

"""

创建创世区块

"""

genesis = Block(0, "SYSTEM", 0, "INIT", "0")

self.chain.append(genesis)

self.save_chain()

def add_record(self, payer, amount, category):

prev_block = self.chain[-1]

new_block = Block(

index=len(self.chain),

payer=payer,

amount=amount,

category=category,

prev_hash=prev_block.hash

)

self.chain.append(new_block)

self.save_chain()

def save_chain(self):

with open(self.storage_file, "w", encoding="utf-8") as f:

json.dump([block.__dict__ for block in self.chain], f, indent=2)

def load_chain(self):

try:

with open(self.storage_file, "r", encoding="utf-8") as f:

data = json.load(f)

self.chain = [Block(**b) for b in data]

except FileNotFoundError:

self.create_genesis_block()

4️⃣ main.py(示例运行)

from chain import FamilyLedger

ledger = FamilyLedger()

ledger.add_record("爸爸", 300, "超市购物")

ledger.add_record("妈妈", 1200, "房租")

ledger.add_record("儿子", 68, "游戏充值")

print("✅ 家庭账本已更新")

五、README.md(使用说明)

# Family Ledger Chain

📌 简介:

基于区块链思想的家庭收支记账小程序,

每笔收支写入链式结构,不可删除、不可篡改。

🚀 使用方法:

bash

python main.py

📄 数据存储:

- ledger.json 保存全部账目

- 家庭成员可随时查看与核对

⚠️ 注意事项:

- 当前为本地单机版本

- 不替代银行账单,仅用于家庭内部对账

六、核心知识点卡片(Knowledge Cards)

模块 关键技术点

区块链基础 区块、哈希链、创世区块

数据不可篡 哈希依赖、链式校验

家庭协作 多方可见、公开透明

时间戳 顺序性、可追溯

Python OOP 类封装、模块化设计

创新思维 用“链”解决信任问题

七、总结(Conclusion)

✅ 本方案:

- ✅ 不需要数据库

- ✅ 不需要服务器

- ✅ 用“区块链思维”解决家庭信任

- ✅ 每一笔钱都有“铁证”

📌 一句话总结:

**让家庭账本像比特币一样可靠,

不再因为“谁花了钱”而吵架。**

如果你愿意,下一步可以:

- ✅ 升级为 多人签名记账

- ✅ 增加 账目争议仲裁机制

- ✅ 做成 Web / 微信小程序

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 7:35:27

别再乱用加密了!C# RSA 正确打开方式

在很多 C# 项目里,加密这块经常是“能用就行”:密码直接明文传?❌AES 一把梭?❌RSA 只会用不会原理?❌结果就是:安全性看起来做了,其实漏洞一堆。这篇文章不讲空理论,直接从 官方实现…

作者头像 李华
网站建设 2026/4/24 7:34:18

uniapp支付宝 H5 开发踩坑,hash模式下取参要规范!

一、背景在 uni-app 开发支付宝内嵌 H5 业务时,由于页面获取参数不规范导致页面跳转异常、参数丢失或解析报错,测试表现为白屏//❌错误写法 let tmp decodeURIComponent(location.href) let dataObj JSON.parse(tmp.split()[1])这种取法非常基础,没有考虑到多个参…

作者头像 李华
网站建设 2026/4/24 7:33:20

喂了虾粮的龙虾,该给你赚钱了

money-never-sleep技能详情见 OpenClaw 官方技能市场 OpenClaw / Hermes 技能:https://clawhub.ai/sopaco/money-never-sleep GitHub 源码:https://github.com/sopaco/money-never-sleep一、那个晚上,我又一次失眠了 凌晨三点,窗外…

作者头像 李华
网站建设 2026/4/24 7:31:42

边缘RAG加速架构:DIRC-RAG的创新设计与应用

1. 边缘RAG加速架构的技术挑战与创新机遇在人工智能技术快速发展的今天,大型语言模型(LLM)已成为自然语言处理领域的核心技术。然而,当这些模型需要处理用户私有数据(如医疗记录、个人档案等)时,传统的云端处理方式面临…

作者头像 李华
网站建设 2026/4/24 7:29:19

MCMC方法解析:从蒙特卡洛到吉布斯采样与Metropolis-Hastings

1. 概率推断的挑战与蒙特卡洛方法的局限在机器学习和统计建模中,我们经常需要从概率模型中估计期望值或概率密度。想象你是一位数据分析师,面对一个包含数十个变量的复杂数据集,需要预测某个事件发生的概率。直接计算这个概率往往如同在迷宫中…

作者头像 李华