599ccfe1c8
- internal/chain/persistent.go: PersistentChain 装饰 MemoryChain - 复用 MemoryChain 全部业务规则(权限/1:1绑定/防换壳),读走内存 - 写路径在内存变更成功后写穿 PG 镜像表(content_registry/hash_binding/identity_mapping/version_history/chain_tx) - 启动从 PG 水合恢复内存状态,重启不丢数据;PG 为非权威镜像,写穿失败仅记日志 - deploy/migrations/0004_binding_revoked.sql: hash_binding 增加 revoked/revoked_reason 列(集级下架镜像) - cmd/api-svc/main.go: 共享一个 *sql.DB,PG 可用时启用 PersistentChain+PostgresStore,否则回退内存 - 验证: seed_demo 后内容/映射/哈希落库;重启水合3条内容,resolve/mappings 正常恢复 - 面向未来: 接真实 ChainMaker 时整体替换 chain.Client,业务层零改动
13 lines
433 B
PL/PgSQL
13 lines
433 B
PL/PgSQL
-- 集级下架状态镜像:hash_binding 增加 revoked / revoked_reason 列。
|
|
-- 对应需求11(集级应急下架/恢复),使集级下架状态可持久化镜像。
|
|
|
|
BEGIN;
|
|
|
|
ALTER TABLE hash_binding
|
|
ADD COLUMN IF NOT EXISTS revoked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
ADD COLUMN IF NOT EXISTS revoked_reason TEXT;
|
|
|
|
COMMENT ON COLUMN hash_binding.revoked IS '集级下架标记:true=该集已下架';
|
|
|
|
COMMIT;
|