149 lines
5.3 KiB
Python
149 lines
5.3 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
"""
|
|||
|
|
Пример создания первого когнитивного ключа (Genesis)
|
|||
|
|
====================================================
|
|||
|
|
|
|||
|
|
Genesis = первый когнитивный ключ участника.
|
|||
|
|
Это его identity в сети Montana.
|
|||
|
|
|
|||
|
|
Запуск:
|
|||
|
|
python example_genesis.py
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from pathlib import Path
|
|||
|
|
from presence import (
|
|||
|
|
PresenceStorage,
|
|||
|
|
generate_cognitive_key,
|
|||
|
|
format_genesis_message
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
"""Демонстрация создания Genesis."""
|
|||
|
|
|
|||
|
|
print("=" * 60)
|
|||
|
|
print(" MONTANA GENESIS — Первый Когнитивный Ключ")
|
|||
|
|
print("=" * 60)
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
# =========================================================
|
|||
|
|
# ПРИМЕР 1: Создание Genesis для Наблюдателя
|
|||
|
|
# =========================================================
|
|||
|
|
|
|||
|
|
print("📌 ПРИМЕР 1: Genesis Наблюдателя (金元Ɉ)")
|
|||
|
|
print("-" * 60)
|
|||
|
|
|
|||
|
|
observer_key = generate_cognitive_key(
|
|||
|
|
user_id=8552053404, # Telegram ID
|
|||
|
|
telegram_username="junomoneta", # @username
|
|||
|
|
marker="#Благаявесть", # Когнитивный маркер
|
|||
|
|
first_response="Да. Я здесь. Всегда был и буду."
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print(f"User ID: {observer_key.user_id}")
|
|||
|
|
print(f"Username: @{observer_key.telegram_username}")
|
|||
|
|
print(f"Маркер: {observer_key.marker}")
|
|||
|
|
print(f"Genesis Hash: {observer_key.genesis_hash}")
|
|||
|
|
print(f"Public Key: {observer_key.public_key}")
|
|||
|
|
print(f"Genesis Sig: {observer_key.genesis_signature[:64]}...")
|
|||
|
|
print(f"Timestamp: {observer_key.genesis_timestamp}")
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
# =========================================================
|
|||
|
|
# ПРИМЕР 2: Создание Genesis для нового участника
|
|||
|
|
# =========================================================
|
|||
|
|
|
|||
|
|
print("📌 ПРИМЕР 2: Genesis нового участника")
|
|||
|
|
print("-" * 60)
|
|||
|
|
|
|||
|
|
new_user_key = generate_cognitive_key(
|
|||
|
|
user_id=123456789,
|
|||
|
|
telegram_username="new_member",
|
|||
|
|
marker="#МойПуть",
|
|||
|
|
first_response="Присутствую в моменте."
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print(f"User ID: {new_user_key.user_id}")
|
|||
|
|
print(f"Маркер: {new_user_key.marker}")
|
|||
|
|
print(f"Genesis Hash: {new_user_key.genesis_hash[:32]}...")
|
|||
|
|
print(f"Public Key: {new_user_key.public_key[:32]}...")
|
|||
|
|
print(f"Genesis Sig: {new_user_key.genesis_signature[:32]}...")
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
# =========================================================
|
|||
|
|
# ПРИМЕР 3: Сохранение в storage
|
|||
|
|
# =========================================================
|
|||
|
|
|
|||
|
|
print("📌 ПРИМЕР 3: Сохранение в storage")
|
|||
|
|
print("-" * 60)
|
|||
|
|
|
|||
|
|
# Каноническая папка данных бота (внутри montana_bot/)
|
|||
|
|
data_dir = Path(__file__).resolve().parent / "data"
|
|||
|
|
storage = PresenceStorage(data_dir)
|
|||
|
|
|
|||
|
|
# Создать и сохранить
|
|||
|
|
if not storage.has_key(111222333):
|
|||
|
|
saved_key = storage.create_key(
|
|||
|
|
user_id=111222333,
|
|||
|
|
telegram_username="test_user",
|
|||
|
|
marker="#TestGenesis",
|
|||
|
|
first_response="Тестовый первый ответ."
|
|||
|
|
)
|
|||
|
|
print(f"✅ Genesis создан и сохранён!")
|
|||
|
|
print(f" Маркер: {saved_key.marker}")
|
|||
|
|
print(f" Hash: {saved_key.genesis_hash[:32]}...")
|
|||
|
|
else:
|
|||
|
|
existing_key = storage.get_key(111222333)
|
|||
|
|
print(f"ℹ️ Genesis уже существует:")
|
|||
|
|
print(f" Маркер: {existing_key.marker}")
|
|||
|
|
print(f" Hash: {existing_key.genesis_hash[:32]}...")
|
|||
|
|
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
# =========================================================
|
|||
|
|
# ПРИМЕР 4: Полное сообщение для Telegram
|
|||
|
|
# =========================================================
|
|||
|
|
|
|||
|
|
print("📌 ПРИМЕР 4: Сообщение для Telegram")
|
|||
|
|
print("-" * 60)
|
|||
|
|
|
|||
|
|
message = format_genesis_message(observer_key)
|
|||
|
|
print(message)
|
|||
|
|
|
|||
|
|
# =========================================================
|
|||
|
|
# ФИЛОСОФИЯ GENESIS
|
|||
|
|
# =========================================================
|
|||
|
|
|
|||
|
|
print("=" * 60)
|
|||
|
|
print(" ФИЛОСОФИЯ GENESIS")
|
|||
|
|
print("=" * 60)
|
|||
|
|
print("""
|
|||
|
|
Genesis — это первый когнитивный ключ участника.
|
|||
|
|
|
|||
|
|
Как Bitcoin Genesis Block:
|
|||
|
|
• Один человек (Сатоши) создал genesis
|
|||
|
|
• После — децентрализованная сеть
|
|||
|
|
|
|||
|
|
Montana Genesis:
|
|||
|
|
• Бот создаёт genesis для каждого участника
|
|||
|
|
• После — твори где хочешь (Twitter, Telegram, GitHub)
|
|||
|
|
• Верификация — через Montana network
|
|||
|
|
|
|||
|
|
Формула:
|
|||
|
|
identity(user) = genesis(bot) + thoughts_trail(socials) + verification(Montana)
|
|||
|
|
|
|||
|
|
Принцип Парето 80/20:
|
|||
|
|
• 80% Full Nodes (серверы, автоматика)
|
|||
|
|
• 20% Verified Users (люди, "Ты здесь?")
|
|||
|
|
|
|||
|
|
Genesis ≠ ключ криптографический.
|
|||
|
|
Genesis = ключ когнитивный.
|
|||
|
|
Genesis = КТО ТЫ, не ЧТО ТЫ ИМЕЕШЬ.
|
|||
|
|
|
|||
|
|
#Благаявесть
|
|||
|
|
""")
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|