Storichain Tokeneconomy simulation first result based on ABMS, 2019.1.2.

Agent Based Modeling and Simulation

Table of Contents

1. Overview 2. The desired result 3. Scenario 4. Internal operation method 5. Results of analysis 6. Limits and future plans

1. Overview

Task name: Verifies the stability of the ecosystem of Storichain (Dapp project) through ABMS simulation

Task period: 1st November 2018 to 31st December 2018

Sub-task: 2 years compensation pool variability is identified and utilized in token flow policy

Simulation environment:

- Tool: Repast Symphony 2.6

OS: MacOS 10.13.6, Window 10

2. The desired result

Through the simulation, the following results were checked:

First, find a point where the token fluctuates rapidly

Second, finding a distribution policy that focuses on a specific participant

Third, over time, the company will reduce compensation from EcoPool and increase the proportion of investments made by PD Agent.

3. Scenario

Participating object: ST (writer), PD (producer), RD (reader), Story

Major scenario (relational formation)

1) The relationship between the four objects above is formed through Story.

2) ST and ST are connected only when working together (current code can only be co-worked with two people)

3) ST is related when Story is created (up to 10 stories can be created)

4) If ST has more than a certain number of Story typing, the corresponding indicator will rise.

5) When ST creates a new scene in the Story, the figure of the indicator rises.

6) Relevance is formed when the PD invests in the Story and investment is made only when the product characteristics of the Story are included within the PD’s desire range.

7) The PD will have a valid value in the Story if the Story participates in the validation.

8) When PD participates in the branching of Story, the branch level rises in Story.

9) Relationship is formed when RD reacts to Story. Reaction takes place only when the product characteristics of Story are within the range of RD’s needs.

10) If RD reads Story, the corresponding figure goes up.

11) When RD shares the Story, the corresponding figure is raised.

4. Internal operation method

The class diagram explains how objects are designed first, and only the parts that need to be explained during the internal logic are briefly described.

4.1 클래스 다이어그램

Parameters

Classes that manage initial settings

SimulationBuilder

ABMS simulation main class initializes all other classes here.

EntreNetworkGenerator

As a class that oversees agent-to-agent relationship settings, call corresponding classes according to the conditions set by Parameter.

AdjacentNetworkGenerator

This class finds and connects agent-to-agent relationships on adjacent nodes

RandomNetworkGenerator

When establishing relationships between agents, select randomly selected agent to connect.

BarabasiAlbertNetworkGenerator

When establishing relationships between agents, select the larger cluster of agent to connect.(Choose good background)

Classes of major objects

Agent

have a common function as the parent object of a major object

PD

As a producer object, it serves as an investment and validation of the story.

RD

As a reader (RD) object, it plays a role in responding to stories

ST

Create a story and collaborate as a writer (ST) object.

Story

An object that acts as a center between agents, and other objects are connected through Story object.

GrowthSchedule

The class that evaluates Story Growth Index (GI) operates on an independent schedule.

4.2 Key Operating Methods

Repast Symphony is an agent-based simulation tool. Simulate the desired objects (agents) and assign an independent schedule. The portion of the code that assigns a schedule to each object (agent) is implemented as follows in SimulBuilder class.

public void scheduleActions() { ISchedule schedule = repast.simphony.engine.environment.RunEnvironment.getInstance().getCurrentSchedule(); ScheduleParameters parameters = ScheduleParameters.createRepeating(10,Parameters.adaptationSpeed+3, 9); schedule.scheduleIterable(parameters, pdList, “doPDaction”, true); // call PD schedule parameters = ScheduleParameters.createRepeating(2,Parameters.adaptationSpeed+17, 8); schedule.scheduleIterable(parameters, stList, “doSTaction”, true); // call ST schedule parameters = ScheduleParameters.createRepeating(2, Parameters.adaptationSpeed+9, 8); schedule.scheduleIterable(parameters, rdList, “doRDaction”, true); // call RD schedule } SimulBuidler.java

Schedule is a function that is continuously invoked under independently defined conditions. Set Interval, Priority, and Start for the call condition. In the above code, the parameters set the initial conditions and pass them to the schedule. The schedule of each agent continues to rotate and the object generates data. Our interest is tokens data, which assumes about two years of operation and collects data.

5. Results of analysis

Activity screen in Agent (PD,ST,RD,Story)

Illustrates how agents (PD, ST, RD, and Story) behave. The blue circle represents PD. An orange square represents an RD. The light green star type represents the author of ST. At the end, the sky blue cross represents Story. The current capture screen above is a picture since 1400 Ticks was created by ST (60), RD (166), PD (45), and Story (106).

Two years have passed since we reached 1400 Tick Count.

Early EcoPool was set to 1,000 token.

Two years later, token inflation was roughly half the rate.

Let’s contrast it with the results we wanted.

First, find a point where the token fluctuates rapidly

After the 550 Tick count, the rate of token benefit increases significantly that of PD than that of the author (ST). It seems that it is because of inflation as many co-authors as it is now.

Second, finding a distribution policy that focuses on a specific participant

This is the same as above. After 1,300 Ticks, the PD’s tokens show a gradual decrease. This means that there is less compensation than investment, but you will know what it means by watching it for a longer.

Third, over time, the company will reduce compensation from EcoPool and increase the proportion of investments made by PD.

The task of adjusting token inflation to a low level is needed, depending on the number of times or agents increasing.