Terminology¶
- Admin¶
A type of User of a Shop. Admins possess the same permissions as Clerks, but also have the ability to add and remove other Clerks.
- Clerk¶
A type of User of a Shop. Usually an employee, like an Admin. Clerks possess the necessary permissions to edit Listing information.
- Client¶
Software used to interact with a Shop by implementing the data types and Smart Contracts.
- Eventual Consistency¶
In contrast to classical online database systems (e.g. RDBMS like SQL), in event sourcing (ES) (aka append-only logs) all mutations of the state are broken up into discrete events. Hence, instead of retrieving a full table of data, each INSERT and DELETE is transmitted individually, at least conceptually. This helps a lot in distributed systems to gain eventual consistency, which allows for fault tolerant processing during network partitions, if the required semantics can be established for partitioned scenarios.
- Guest¶
A person that might want to buy something in a Shop. See Adding Users and Logging in and Object Visibility for more.
- Inventory¶
Is private to a Shop. It is information attached to Items. Most notably, how many of an Item are available at a given time, which could be used to profile sales if it were public.
- KeyCard¶
A separate cryptographic KeyPair that is used primarily for interacting with the Relay. It is used to sign Patches and to identify the User to the Relay. Its main purpose is to reduce interactions with the Wallet of a User. See KeyCards vs User Wallets for more information.
- Listing¶
Contains the public information of an Item in a Shop. Name, Price and other metadata. For the full definition see
Listing
.- Operator¶
The Operator of a Relay is responsible for funding the Wallet of the Relay, so that it can pay for the needed Gas. While Shop owners can host their own Relays, they shouldn’t have to. The long-term vision being to find ways to incentivise the operation of Relays that serve multiple Shops.
- Order¶
An Order is a collection of Items that a Guest wants to buy. For the full definition see
Order
.- Owner¶
A type of User of a Shop. The owner is the person that created the Shop. Owners can add and remove Clerks and Admins.
- Relay¶
The main job of a Relay is to manage the Listings and Inventory of a Shop. It is also responsible for sequencing Patch writes from Users into a logical log of Patches and sending Patches to all Clients of a Shop.
- Shop¶
A Shop is operated by a merchant to sell (physical) goods. It exists as an EIP721 as on-chain information in our Smart Contract system. It is mainly accessed by a JavaScript-powered Website, available at a certain known domain, which interacts with a Relay to supply the Listings.
- Smart Contract¶
A Smart Contract is a piece of code that is executed and verified by a Blockchain, such as Ethereum. The Mass Market system consists of three Smart Contracts: Shop Registry, Relay Registry and Payments Factory. See Smart Contracts for more information.
- User¶
Overarching term for all persons interfacing with a shop, whether Guest, Clerk, Admin or Owner. See Adding Users and Logging in for more information.
- Wallet¶
A Wallet is a piece of software that is used to manage a User’s funds, creation of cryptographic signatures and interaction with Smart Contracts. A common example is MetaMask.
- WebSocket¶
A HTTP-based protocol that allows for a two-way communication channel between a client and a server. It is defined in RFC 6455 and has been established in 2011. By now it is virtually ubiquitous in modern web browsers. Here it is mainly used as a TCP replacement for our connection to the Relay.