先までは、"愛記"についての記載で、どのようにブロックチェーンSNSに組み込んで実装していけばよいのか、概念的なところからアプローチ方法を記載していった。大まかな概念としてはひとまず終えた。次は、ブロックチェーンの概念設計といえるところまで、基本設計書に着手できるようなところまで、概念を具体化していきたい。
◆愛記システムのシステム評価について
システム評価とは、つまりは、このシステムを導入して成功だったか失敗だったかという効果検証という意味だ。概念設計をする上で必ず抑えておくべきポイントということだ。それには各項目があり、それぞれの項目を見ていくことで、その結果が得られる。そのシステム評価項目を1つずつ見ていきたい。
システム構築の品質評価のポイント1:理解可能性(Understandability)
システム構築の品質評価のポイント2:完全性(Completeness)
システム構築の品質評価のポイント3:簡潔性(Conciseness)
システム構築の品質評価のポイント4:移植性(Portability)
システム構築の品質評価のポイント5:一貫性(Consistency)と構造化の度合い
システム構築の品質評価のポイント6:保守性(Maintainability)
システム構築の品質評価のポイント7:試験性(Testability)
システム構築の品質評価のポイント8:ユーザビリティ(Usability)
システム構築の品質評価のポイント9:効率性(Efficiency)
システム構築の品質評価のポイント10:セキュリティ(Security)
システム構築の品質評価のポイント1:理解可能性④(Understandability)
波動レベルを知る
波動レベルは、ボディ側:発達課題のレベル、意識側:意識レベル、意志側:愛の行動レベル、を総合的にみて決める。
1.発達課題は受け取る愛の行動レベルだけでなく、生命体の次元レベルも関係してきて、高次元の生命体がきちんと動いているかがポイントになる。
2.意識レベルは、チャクラの開放、愛貨の保有量と関係があり、愛貨の保有量が各次元でどれほどあるかにより、保有が多いほど高い評価となる。
3.愛の行動レベルは、相手に受け取ってもらえたかどうかは別として、愛の行動をした量が評価される。
波動レベルの決定にはボディ側(発達課題のレベル)、意識側(意識レベル)、意志側(愛の行動レベル)が関与し、それぞれが総合的に考慮されるが、以下にそれぞれの要素について詳細に説明したい。
◆意識側(意識レベル)
意識レベルを測るためのブロックチェーンのプログラムを考えてみよう。愛貨の保有量やチャクラの開放度を示すデータをブロックチェーン上で管理し、意識レベルを計測する。これは、チャクラの開放度や愛貨の保有量を考慮して、総合的な意識レベルを算出するものである。具体的には、意志レベルでは愛の行動をした!という行動数をカウントしているが、意識レベルでは愛貨を受取ったという数をカウントすればいい。どのレベルの愛貨を受取ったかが、意識レベルの高さになる。それを各次元ごとに難易度を設定して、各次元で受取った愛貨のカウントによって、意識レベルとして愛貨の保有量を考える設計を行う。スマートコントラクトとDApps側のPythonでの実装の一部を示す。
○スマートコントラクト(python):
from typing import List, Dict
class LoveReceived:
def __init__(self, level: int, timestamp: int):
self.level = level
self.timestamp = timestamp
class Dimension:
def __init__(self, difficulty: int):
self.difficulty = difficulty
self.love_balances = {}
self.love_received = {}
class ConsciousnessLevel:
def __init__(self):
self.dimensions: Dict[str, Dimension] = {}
self.user_dimension: Dict[str, str] = {}
def set_dimension(self, dimension: str, difficulty: int):
self.dimensions[dimension] = Dimension(difficulty)
def record_love_received(self, dimension: str, level: int):
if dimension not in self.dimensions:
raise ValueError("Dimension not set")
user = self.user_dimension.get(msg.sender, None)
if user is None:
raise ValueError("User not registered for dimension")
if user not in self.dimensions[dimension].love_balances:
self.dimensions[dimension].love_balances[user] = 0
if user not in self.dimensions[dimension].love_received:
self.dimensions[dimension].love_received[user] = []
self.dimensions[dimension].love_balances[user] += level
self.dimensions[dimension].love_received[user].append(LoveReceived(level, block.timestamp))
def get_consciousness_level(self, user: str, dimension: str) -> int:
total_level = sum(received.level for received in self.dimensions[dimension].love_received[user])
return total_level // self.dimensions[dimension].difficulty
# Example usage
consciousness_level = ConsciousnessLevel()
consciousness_level.set_dimension("dimension1", 10)
user = "user1"
consciousness_level.user_dimension[msg.sender] = user
consciousness_level.record_love_received("dimension1", 5)
print(consciousness_level.get_consciousness_level(user, "dimension1"))
このスマートコントラクトでは、各次元ごとに愛の受け取りを記録し、難易度に基づいて意識レベルを計算している。
○DApps側のPythonコード:
from web3 import Web3
from flask import Flask, request, jsonify
app = Flask(__name__)
# Web3の初期化などが必要
@app.route('/record_love_received', methods=['POST'])
def record_love_received():
data = request.get_json()
user_address = data['user_address']
dimension = data['dimension']
level = data['level']
# スマートコントラクトとの接続
contract_address = "0x1234567890123456789012345678901234567890"
contract_abi = [...] # スマートコントラクトのABI
web3 = Web3(Web3.HTTPProvider('http://localhost:8545'))
contract = web3.eth.contract(address=contract_address, abi=contract_abi)
# 愛の受け取りをスマートコントラクトに記録
contract.functions.recordLoveReceived(dimension, level).transact({'from': user_address})
return jsonify({"message": "Love received recorded successfully"})
if __name__ == '__main__':
app.run(debug=True)
このPythonプログラムは、Flaskを使用して愛の受け取りを記録する。ユーザーが送信したデータを取得し、Web3を使用してスマートコントラクトにトランザクションを送信する。このように、スマートコントラクトとDApps側のPythonプログラムを組み合わせることで、意識レベルを測定するシステムを実装できる。
◆プロフィール画面へ表示
これで意識側:意識レベルが取得できる。このようにして、発達課題レベル、愛の行動レベル、意識レベルの3つの要素のスコアを取得し、その中で最も低いスコアを総合的な波動レベルとして返していく。そして、プロフィール画面へ表示させていく仕組みだ。プロフィール画面の設計としては、具体的なGUIライブラリやWebフレームワークに依存するので、使用環境に合わせて適切なものを選択していくことになる。ここでは、tkinterを使ったシンプルなGUIアプリケーションの例を挙げる。
import tkinter as tk
from datetime import datetime, timedelta
import threading
import time
class ProfileApp:
def __init__(self, master):
self.master = master
self.master.title("プロフィール画面")
# プロフィール表示部分
self.profile_label = tk.Label(master, text="総合的な波動レベル: -", font=("Helvetica", 16))
self.profile_label.pack(pady=20)
# 初回の更新
self.update_profile()
# 毎日0時に更新するためのスレッド
self.update_thread = threading.Thread(target=self.update_profile_daily)
self.update_thread.start()
# ウィンドウが閉じられるときに呼び出される関数を設定
self.master.protocol("WM_DELETE_WINDOW", self.on_closing)
def calculate_wave_level(self, development_score, consciousness_score, love_action_score):
# 各スコアの最小値を総合的な波動レベルとして返す
return min(development_score, consciousness_score, love_action_score)
def update_profile(self):
# 仮のスコアを設定
development_score = 4
consciousness_score = 5
love_action_score = 7
# 波動レベルを計算
wave_level = self.calculate_wave_level(development_score, consciousness_score, love_action_score)
# プロフィール表示を更新
self.profile_label.config(text=f"総合的な波動レベル: {wave_level}")
def update_profile_daily(self):
while True:
# 現在時刻を取得
now = datetime.now()
# 毎日0時に更新
if now.hour == 0 and now.minute == 0 and now.second == 0:
self.update_profile()
# 一日待機
time.sleep(86400) # 60秒 * 60分 * 24時間 = 86400秒
# 1秒ごとに確認
time.sleep(1)
def on_closing(self):
# ウィンドウが閉じられたときに呼び出される処理
self.master.destroy()
# スレッドを終了させる
self.update_thread.join()
if __name__ == "__main__":
root = tk.Tk()
app = ProfileApp(root)
root.mainloop()
なお、更新頻度は日々更新としたい。毎日0時に更新されるようにしていく。あまりに短く時間更新などにしてしまうと、ある一時のレベルの高まりが反映されてしまうので、あまり短くもしにくい。日々更新でまあ何とか、という具合であろう。
いかがであろうか、これでプロフィール画面に波動レベルを表示させる仕組みができた。これで自分の波動レベルを知ることができる。参考値ではあるが、自分の波動レベルを知ることができれば、自分の行動をどのように変えていけばいいのかとか、もっとレベルを上げたいとか、欲求が芽生え、さらなる愛の行動をしていくことができるのであろう。