23 lines
846 B
Python
23 lines
846 B
Python
from __future__ import annotations
|
|
|
|
from sqlalchemy import Column, String, Integer, Float, JSON, DateTime
|
|
from datetime import datetime
|
|
|
|
from .base import AlchemyBase
|
|
|
|
|
|
class DHTRecordRow(AlchemyBase):
|
|
__tablename__ = 'dht_records'
|
|
|
|
# fingerprint = blake3(serialized key)
|
|
fingerprint = Column(String(128), primary_key=True)
|
|
key = Column(String(512), nullable=False, index=True)
|
|
schema_version = Column(String(16), nullable=False, default='v1')
|
|
logical_counter = Column(Integer, nullable=False, default=0)
|
|
timestamp = Column(Float, nullable=False, default=0.0)
|
|
node_id = Column(String(128), nullable=False)
|
|
signature = Column(String(512), nullable=True)
|
|
value = Column(JSON, nullable=False, default=dict)
|
|
updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
|
|
|