<!DOCTYPE html> <head> <title>Forum Network test</title> <link type="text/css" rel="stylesheet" href="/index.css" /> </head> <body> <div id="forum-network"></div> </body> <script type="module"> import { Box } from "/classes/box.js"; import { Scene } from "/classes/scene.js"; import { PostContent } from "/classes/post.js"; import { Expert } from "/classes/expert.js"; import { ForumNode } from "/classes/forum-node.js"; import { ForumNetwork } from "/classes/forum-network.js"; import { CryptoUtil } from "/classes/crypto.js"; import { delay } from "/util.js"; const rootElement = document.getElementById("forum-network"); const rootBox = new Box("rootBox", rootElement).flex(); window.scene = new Scene("Forum Network test", rootBox).log( "sequenceDiagram" ); window.author1 = await new Expert("author1", window.scene).initialize(); window.author2 = await new Expert("author2", window.scene).initialize(); window.forumNetwork = new ForumNetwork(); window.forumNode1 = await new ForumNode("node1", window.scene).initialize( window.forumNetwork ); window.forumNode2 = await new ForumNode("node2", window.scene).initialize( window.forumNetwork ); window.forumNode3 = await new ForumNode("node3", window.scene).initialize( window.forumNetwork ); const processInterval = setInterval(async () => { await window.forumNode1.processNextMessage(); await window.forumNode2.processNextMessage(); await window.forumNode3.processNextMessage(); await window.scene.renderSequenceDiagram(); }, 100); // const blockchain = new Blockchain(); window.post1 = new PostContent({ message: "hi" }); window.post1.id = CryptoUtil.randomUUID(); window.post2 = new PostContent({ message: "hello" }).addCitation( window.post1.id, 1.0 ); await delay(1000); await window.author1.submitPostViaNetwork( window.forumNode1, window.post1, 50 ); await delay(1000); await window.author2.submitPostViaNetwork( window.forumNode2, window.post2, 100 ); await delay(1000); clearInterval(processInterval); </script>