<commit_before>\section{Requirements}

The goal of this project is to create a decentralised marketplace.
The basics of a marketplace should work, so users have to be able to trade (virtual) commodities.
The system should be decentralised.
It should scale to thousands of users.
A nice user interface is not a priority, so only command line input is required.

Spoofing of message would of course be a big problem in a trading network.
However, since this is a solved problem, the focus of the project should be on other areas.

It would be nice to ensure the privacy of the users.

In order to achieve this, strong encryption of messages is required.
Further thought is also necessary on what information is exposed.
It would be nice to have a network resistant against hostile takeover.
Having a decentralised system plays a big role in this.
However, other attack vectors could also be possible.
Finally, it would be nice to trade real, verified commodities.
Before we can do this however, the requirements listed above should be satisfied first.


The requirements are summarized in this MoSCoW list: \\

\begin{myitemize}
\item Must
\begin{myitemize}
	\item Place an ask/bid
	\item Trade an ask/bid
    \item Find each other (peer discovery)
    \item Decentralised
    \item Scalable to 1000s of users
    \item Command line input
\end{myitemize}
\item Should<commit_msg>Update requirements.<commit_after>\section{Requirements}
The goal of tsukiji is to create a decentralised market where users can trade commodities.
Tsukiji is primarily a proof-of-concept, i.e. it should showcase the technologies and viability of a decentralised market.
While Tsukiji is a proof-of-concept, this does not mean we have to forego a usable application altogether.

The basics of a marketplace should work.
This means users should be able to place an offer, i.e. an ask or bid.
They should also be able to see offers from other users.
From an offer, a trade can be initiated.

The system should be decentralised.
The lack of a clear single point of failure is the theme of this project.
Tsukiji can take inspiration from peer-to-peer networks such as BitTorrent.

It should scale to thousands of users.
If our goal is to create a usable application, the network should be able to handle many connections.
The choice for thousands of users (as opposed to hundreds or millions) is motivated by the scale of other applications. %i.e. Tribler

A good user interface is not a priority of this project.
A good user interface is important for a usable application, but a lot of time would have to be devoted to this.
We believe this time is better spent on other areas of the application.
The focus will be on the bare minimum, i.e. a command line interface.

Spoofing of message would of course be a big problem in a trading network.
However, since this is a solved problem, the focus of the project should be on other areas.

It would be nice to ensure the privacy of the users.

In order to achieve this, strong encryption of messages is required.
Further thought is also necessary on what information is exposed.
It would be nice to have a network resistant against hostile takeover.
Having a decentralised system plays a big role in this.
However, other attack vectors could also be possible.
Finally, it would be nice to trade real, verified commodities.
Before we can do this however, the requirements listed above should be satisfied first.


The requirements are summarized in this MoSCoW list: \\

\begin{myitemize}
\item Must
\begin{myitemize}
	\item Place an ask/bid
	\item Trade an ask/bid
    \item Find each other (peer discovery)
    \item Decentralised
    \item Scalable to 1000s of users
    \item Command line input
\end{myitemize}
\item Should
{'fraction_non_alphanumeric': 0.03869762476647985, 'fraction_numerical': 0.0021350413664264745, 'mean_word_length': 4.044414535666218, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4367012', 'n_tokens_mistral': 966, 'n_tokens_neox': 920, 'n_words': 599}