Building a Discord Community from 0 to 1#
Discord is a free voice chat software and digital distribution platform designed specifically for communities, primarily targeting gamers, educators, friends, and business people. Users can communicate through messages, images, videos, and audio in the software's chat channels. This software can run on Microsoft Windows, macOS, Android, iOS, Linux, and web browsers (including Firefox, Google Chrome, and Opera).
Origin of the Software#
The concept of Discord was conceived by Jason Citron, who created the mobile game social network platform OpenFeint. In 2011, he sold OpenFeint to GREE for $104 million and used the money to create the game development studio Hammer & Chisel in 2012. Their first game, Eternal Fate, was released in 2014, and Citron expected it to become the first multiplayer online battle arena game on mobile platforms. However, due to low popularity, they did not succeed. During the development process, to create a better game, Citron noticed that his team had difficulties trying other popular games like Final Fantasy XIV and League of Legends, particularly highlighting serious issues with voice chat. Some voice chat services required players to share multiple IP addresses for calls, while others (like Skype or TeamSpeak) were resource-intensive. This led developers to want to create a more user-friendly chat software based on modern technology: Discord.
Twitter, Telegram, and Discord are essential tools for cryptocurrency projects and communities, comparable to what is referred to in China as "two Weibo and one Douyin" (Weibo, WeChat, and Douyin).
While users in China are somewhat familiar with Twitter and Telegram, Discord is relatively unfamiliar. However, in the past year, as domestic social platforms have tightened their scrutiny, and with the rise of NFTs and DAOs, Discord has increasingly entered the public eye. By the time you read this article, many may have already had some experience navigating Discord.
Yesterday, a screenshot from Discord founder Jason Citron's Twitter hinted that Discord might be testing a feature to link Ethereum addresses through MetaMask and WalletConnect (two of the most commonly used digital wallets).
This also reflects the growing influence of the cryptocurrency community within Discord.
Back to the point, for many domestic users, using Discord still presents certain barriers. The complex structure of Servers (the term for each independent project’s created server in Discord, uniformly translated as "server" here) differs significantly from traditional social media, often blurring the lines between projects and private messages. There are several different ways to enter a channel, especially with the natural language barrier, which indeed requires some exploration.
However, once you cross this threshold, you will experience the power and convenience of Discord, as well as its important role as a social media platform in the cryptocurrency field. More importantly, if you are an investor, Discord is undoubtedly an important tool for understanding project dynamics and engaging deeply with the community. Without further ado, this article will guide you through the basics of using Discord.
- What is Discord and how to use it?
Discord was founded in 2015, the peak year of gaming popularity. Many online games consume a lot of computer resources during operation, and team-based combat games require real-time communication to increase the chances of winning and enhance interactivity. It is believed that many real-time communication tools at that time were competing for computer resources with games. Since the game itself cannot be changed, the goal was to make communication less resource-intensive.
With this "original intention," Discord, through excellent product design, transformed into a unicorn company valued at $15 billion in just a few years, with over 150 million monthly active users. Its services have expanded from video game support to various fields, from study groups to communities.
When chatting with overseas friends about their experiences using Discord, most expressed that they could not do without Discord's real-time communication while gaming. Friends still in school often have their own Discord servers for their classes, where they receive most of the information issued by teachers and schools. It seems that Discord's popularity is comparable to QQ in China.
- Getting Started with Discord
Like many other communication applications, Discord offers a free version for Windows and macOS. Portal: https://discord.com/download
For users who want to use it conveniently, it can also run in a browser. However, the desktop application has some advantages, including the ability to stream video to the server. There are also mobile versions available for iOS and Android that can be downloaded for free.
When users register, they can choose to use an email or phone number and set a password, just like most social software.
- Choosing to Join a Server
Many users in cryptocurrency communities start using Discord to gain firsthand project information. At this point, you can directly click on the Discord link published by the project party to enter and complete the corresponding verification according to each project's requirements.
If you want to explore other popular or related Discord servers, there is an option for Explore Public Servers in the bottom left corner of the main page, where Discord will recommend some popular servers based on popularity and themes.
- Completing the "I am human" verification
Basically, anyone joining a server will be required to verify and read the project's rules. Projects typically require users to click a small emoji, like ✅, in the Welcome channel to complete the verification.
A considerable number of projects also use bot verification methods to complete image classification tests via DM (direct message) before entering the server.
- Finding the Announcements Channel
Compared to channels like Rules and FAQ that can almost be skipped, the Announcements channel will publish the most important information updates from the project party, including new content releases, new roadmaps or the status of roadmap completion, the latest project dynamics, and event previews.
BAYC has placed Announcements at the top as the most important position.
After an event preview is issued, there will be specific channels to announce the event details and gameplay, and the event channel will elaborate on the remaining details. Some NFT project channels may also create a Sneak-Peeks channel to occasionally release fresh NFT images to maintain community engagement.
- Discovering Events
Many players enter Discord because they saw airdrop or whitelist-related activities from other sources like Twitter.
At this point, there will generally be dedicated channels, such as Whitelist Rules, meme contests, etc. Some special activities, like following and retweeting to receive giveaways, can also be found in dedicated event channels.
Friends who are proficient in English can try to follow the steps listed by the project party to complete the operations step by step. Many projects offer considerable benefits to early supporters of the community during early promotions. Supporting is often as simple as joining Discord early and inviting some friends.
Don't be afraid of the language barrier; open your phone, and with the help of translation software, completing most tasks is not too difficult.
- Trying to Chat
Chatting—usually in the General or main chat channels—is where community members get to know each other, discuss projects, or spontaneously create more meaningful interactions.
Try chatting, and you will gradually find your presence in the community. This also provides NFT projects with a unique sense of identity for community members or NFT holders. In this regard, NFTs have brought about another advancement in online virtual socializing, achieving a certain level of consensus through hobbies and collections.
Many people have become core members of the project party's community due to their active participation and interesting suggestions.
Additionally, many project parties have set up Chinese channels. The cryptocurrency market is global, so many project parties will set up multiple language channels to facilitate communication among community users who speak the same language.
- Creating Your Own Server
For users who want to experience Discord more deeply, creating your own server is the best way to understand Discord.
Click the green plus sign in the bottom left corner of the webpage to create a new server for free.
When creating a new server, there are options for personal servers and community/group servers.
After entering a name and completing the creation, you can manually add channels and sub-channels.
Creators can categorize the information they want to convey in order of priority and can mix some emojis into the text and channels to create a youthful and lively atmosphere, making it pleasant and relaxed for people entering the server.
Once you have set up some necessary parts, you can click Invite People in the top left corner of the page to create a link and invite friends you want to join your exclusive server.
Of course, if you want to learn to use more complex features, it is recommended to watch more Discord tutorials on YouTube.
- Why Discord? What are its features?
After getting a preliminary understanding of how to use Discord, many people may wonder what qualities Discord possesses that make project parties eager to establish servers and build communities. In summary, it can be explained from the following aspects:
- Customized Servers
Compared to Twitter, Telegram, or familiar platforms like WeChat and Weibo, Discord creators can set up channels with different functions within servers. Depending on their needs, each requirement has a unique sub-channel to support it. This distinguishes it from simply creating chat groups, as many people establish channels to output different needs.
For example, in Telegram, when project parties create groups, they often have to set up multiple groups, such as one for community members to speak freely and another as a mute channel for official announcements. Different needs require the creation of different groups, making it inconvenient for users to browse and use.
The channel customization feature of Discord provides creators and users with a multi-layered and centralized information space.
Taking the Bushidos NFT project brought by a Coinbase product designer as an example, this project's server has customized about four main channels.
The first main channel, Info (Information) Updates, contains information the team wants to share, including some rules set by the team and the most important Announcements channel, roadmap, and the previously mentioned Sneak-Peeks to preview the project's progress.
The second main channel, FAQs, lists some common questions and answers left by the team regarding the project.
The third main channel, Town Square, is where everyone says gm (good morning) and chats together.
The fourth main channel includes activities continuously launched by the project party, including airdrops, contests related to Bushidos themes, etc. These activities often spark community interest, as completing tasks and receiving NFT rewards is enjoyable for many.
These are gradually improved and established by each project party based on their project's direction and interaction with the community.
- Powerful Bot Features
The powerful bot features are one of the most important reasons project parties choose Discord to build communities.
Taking the Discord server of NFT projects as an example, those who are keen on grabbing whitelists daily are most familiar with the rich bot settings in Discord.
Bots can recognize the first few users who enter Discord; if the mechanism is invitation-based, bots can help you check how many real users you have successfully invited to the server—just type /invite in the Bot channel to check; the NFT sales status can be updated in real-time by bots; your activity level in the server will also be rated by bots, and they can help adjust the color of your name.
For many projects, the level of activity largely determines whether members have the opportunity to receive airdrops or whitelists.
In summary, these bots have successfully spawned many Discord plug-in services, helping Discord establish a more complete and functionally refined service.
- Classification of Community Members
In Discord, the left side of the page is the content and function section, while the right side has a member section that categorizes different types of members.
From top to bottom, we generally see founders, administrators, and some bots with different functions at the top. Below that, important members often appear. For example, in BAYC, verified holders of BAYC appear in the section behind the administrators.
In the community, Chase, as a Club Officer, not only has the officer identity but also displays multiple identities in the BAYC server with different colored tags.
For a community, the level of activity and member management is an important issue. The member classification feature in Discord can effectively help project parties or server creators better motivate and manage users. At the same time, users can clearly see members of different levels or functions from the member list, facilitating effective communication.
- Other Diverse Features and Settings
As mentioned earlier, Discord is powerful because, in addition to text chatting, it also has voice, video conferencing, and live streaming features. Users can freely move between various voice rooms; they only need to enter the server and turn on their microphone to interact with those already in the voice room.
In addition to the official voice channels for activities, project parties will also set up some public voice channels specifically for community members to use and will occasionally come in to interact with members.
Moreover, Discord offers custom emoji services, which can provide more emoji functions for younger Generation Z users who emphasize individuality or NFT projects that want to highlight their uniqueness. After all, the memes brought by emojis are also an interesting part of the interaction between community members and projects, as well as the dissemination of the cryptocurrency community.
In terms of interactivity with other websites, Discord generously integrates various sites, allowing easy connections with sites like YouTube.
- A Note for Beginners!
For beginners, there is also a risk warning here. Like many social platforms, Discord is also filled with scams and fraud.
We can see that almost every project has a channel dedicated to scams and emphasizes that they will never DM (direct message) community members.
If you have ever joined some NFT projects' Discord, you must have experienced receiving many DMs, the vast majority of which are promotional or even fraudulent messages. This is one of the most troublesome aspects of Discord. Sometimes, those who DM you may have the same name and avatar as the project party. If you accidentally click on a fraudulent website they send and connect your digital wallet, it can often lead to financial losses.
How to avoid such issues? Here’s a simple method: after entering each server, click on the project name, find Privacy Settings, turn off the DM option inside, and click Done. Strangers in this project will no longer be able to DM you.
- Summary
We can understand Discord as a comprehensive social media platform that includes real-time communication, text, voice, video, live streaming, group functions, group differentiation, a rich bot assistance system, and integrates other websites like YouTube, meeting different needs from individuals to organizations to companies or projects.
Discord well interprets the value of a third space. Unlike many platforms that are unfriendly to ordinary users and reward only influential or commercially valuable content through algorithmic systems, Discord places more emphasis on personal space. In Discord, people can freely meet, chat, and discuss topics of interest. Many examples also prove that the relationship between creators and participants often transforms into friendships and play.
This has some similarities with the DAO organizational structure popular in the cryptocurrency circle, where people enter specific servers and organizations due to common interests and hobbies, finding their place through communication with others, and generating new social structures and personalized adjustments through online-to-offline connections.
The tightening of domestic regulations and the increasing scrutiny of platforms may be an opportunity—a chance for us to better connect and engage with more people and projects around the world. This is also what excites people about cryptocurrency, blockchain, Web 3.0, and even the future metaverse.
What are the pain points in the blockchain information market?
-
Information on software like WeChat and TG is cluttered, making it impossible to categorize information, consuming a lot of time to view information.
-
The efficiency of information transmission from project parties is low, and complex information can easily cause users to miss key points.
-
There is no way to categorize users, and treating all users equally can easily lead to user attrition.
-
There is no way to reward users based on their contributions.
-
It is difficult to maintain daily activity and increase user stickiness.
-
Communication features are relatively singular.
The more projects you come into contact with, the more you will find that WeChat and Telegram really cannot meet the needs of blockchain users.
Why Discord?
- Multiple channels can be set under one project:
Categorizing information allows for precise and efficient transmission.
Topic categorization saves time in viewing information.
Channel categories can be divided into:
-
Welcome category
-
Notifications
-
Rules and contact information
-
Verification (can be optional)
-
Server issues and voting area:
-
-
Brand fans
-
Product updates
-
New activity launches
-
Fan discussions
-
After-sales service
-
-
Bot area
-
Card games
-
Money games
-
Etc., freely set any bot
-
-
Voice channels are divided into two:
-
Project AMA
-
Topic discussions
-
-
User member settings and permission settings
-
Classify identity groups based on user identity, granting different permissions to help manage the community.
-
Classify identity groups based on user contributions, granting different permissions for differentiated treatment, facilitating later incentives and user retention.
-
Classify identity groups based on user levels, granting different permissions, which is beneficial for the growth and expansion of community users.
... Other details not elaborated.
How to expand the target user base of the Discord community
- Fission bot
Full name invite manager, a bot for counting the number of invites, automatically upgrades members' roles when the number of invites reaches the set threshold.
-
Collaborate with administrators of large communities for promotion.
-
Official announcements of cooperation between projects, many of which are formalities.
-
Influencer collaborations.
-
Community collaborations.
-
Airdrop and other task activities.
Projects can choose different methods based on their pace and situation.
In conclusion, Discord is undoubtedly the preferred tool for blockchain, especially for NFTs, GameFi, and DAOs. How to operate Discord well is welcome for discussion.
Building a Discord Community from 0 to 1
Mainly divided into four steps: goal positioning, community norms, member management, and community incentives. Summarizing methods makes the process less fragmented; in fact, we have all experienced similar content, such as QQ groups and WeChat groups.
- Goal Positioning
First is positioning, clarifying the purpose of this group.
- Community Norms
① Establish group rules.
② Content output.
③ Interaction methods.
- Member Management
① Recruit administrators.
② Level members.
③ Active members within the group.
④ Strong IP.
- Community Incentives
① Social media lottery. Social media and communities are closely linked.
Topic interaction lottery activities on Twitter can be periodic and scheduled, for example, set for every Friday at 5 PM. Retweet to Discord for discussion.
② Material rewards.
Reward users who actively participate in group activities.
③ Competition activities.
For example, submission activities. Video collection activities are about how to plan activities from design to final feedback.
The Discord community consists of servers, channels, chat areas, and member areas, with servers acting as super groups where users can set up channels for communication.
Discord initially aimed to meet the temporary communication needs of gamers, allowing quick entry into a room via an invitation link without needing to add friends first.
Here, if you get along, you can stay; if not, you can choose to leave. However, unlike relationships built around users, this space is centered around channels; you join or leave, and this space always exists, encouraging users to have more follow-up communication after a temporary exchange.
Moreover, Discord breaks down the dimensional barriers between different communities, allowing users' social layers to extend. There are various themed communities where users can interact within circles and also step out to explore other groups, switching between multiple servers.
Functionally, Discord not only provides a communication platform but also offers organizational capabilities, possessing certain tool attributes, akin to a combination of YY + forums + WeChat/QQ groups in China.
In terms of gameplay, Discord gives users the greatest autonomy, sacrificing many common social gameplay elements; there are no "follower counts" or algorithmic recommendations.
All these factors together create a unique sense of community identity for Discord users, which is also why it stands out in a competitive environment filled with rivals.
Now, Discord has become the "third space" on the internet, thus becoming a darling of capital. In September this year, after the latest round of financing, Discord was valued at $15 billion, doubling its valuation from the previous round.
Regarding community building, I would like to share a few personal insights.
-
Regular check-ins or submissions of insights, as a form of ritual, are worth retaining, but it should be noted to guide members to understand: check-ins are not the goal but a means. If insights are not genuine, it is better not to write them; avoid piecing together content just to complete a task.
-
Necessary communication is essential. However, in general communities, communication equates to chatting. It is important to note that casual chatting is not serious communication and can be harmful to the community. We should advocate for serious communication and discard casual chatting. To make communication more efficient and high-quality, a theme can be set for members to express their views on that theme. Members can also review each other's submitted reading insights, which not only livens up the community atmosphere but also allows for mutual improvement.
-
Paid groups tend to have higher quality. Free things are actually the most expensive because free steals our time. Because it is free, we do not take it seriously; because we do not take it seriously, our efficiency decreases. In paid groups, because real money has been spent, we will cherish every submission and every communication more. Although a little money is spent, it yields a more efficient growth experience. The role of the group owner is crucial.
-
Group owners not only need to lead by example due to their identity but also can develop their organizational skills. This pressure is a significant motivation for personal growth. However, human energy, time, and pressure capacity are limited. Sometimes group owners may have personal matters or feel fatigued, which is understandable. However, the identity of the group owner is critical; many communities decline due to the owner's relaxation. Therefore, a better approach is to rotate group owners. This not only reduces the risk of community decline due to personal reasons of the group owner but also allows other community members to gain better training in the owner's position.
All operational actions ultimately converge on values, creating a warm and emotional community organization.
In closing: Operating a community is similar to running a company. Whether a company can be strong depends not only on choosing the right track but also on how to attract excellent talent and how to fully mobilize the other party's initiative within the rules. In the corporate field, this is called "producing output"; in the community, it is called "contributing content." A little recognition is a form of acknowledgment of value, similar to a salary, linking all actions within the community.
The evolution of language allows us to integrate a large number of social relationships, and this effect is achieved through our communication of absent information. In other words, by chatting with one person, we can know how others act, how to respond when encountering these people, and what relationships they have with third parties. All of this enables us to integrate social relationships more efficiently within the group. This is particularly important in large and decentralized organizations, which is precisely a characteristic of modern humanity.
The course is divided into two parts.
Explaining Discord's Basic Features#
What is a server?
Discord gives you the option to create your own secret base, where you can invite friends or communities you want to spend time with. Here, you can chat, hang out, and have fun with friends. We call this special place a server, and it generally looks like this:

Voice Channels are a great place where you can spend time with friends via voice or video. Here, there are no ringing tones or concepts of who calls whom—you just need to
How to chat on the server?
In voice channels, you can chat with friends right away. You can refer to the following content to learn how to start a voice call, video call, share your screen, or watch others' live streams on the server.
- Discord Tips (such as commonly used shortcuts)
- Personal Settings
Before starting to use a software, the most important thing is to set up your "personal usage settings." Whether it’s notification methods, avatar names, or personal privacy and security, these will greatly affect your future user experience. You wouldn’t want to suddenly be added as a friend by a stranger or be bombarded with group messages, right? Or you might want to use a less recognizable gaming name on Discord to freely roam the online world, but when you bind your other accounts, if you haven’t set it up in advance, your personal information might be displayed by the system. By clicking the gear icon next to your name in the user interface at the bottom left after logging in, you can reach the settings page.
For example, if you are worried about forgetting to mute your microphone and being heard by others, you can adjust the settings in "Voice & Video" to require holding down a button to speak; you can also adjust the software you want to use, whether it’s the computer's built-in one or fun filters like Snapchat, turning you into a coconut tree during video calls; features like "echo cancellation" and "noise reduction" can also be set up in advance according to your usage environment and needs.
In the previous section 1.0, it was mentioned that Discord can connect to different social media platforms like YouTube and Spotify, allowing you to share your favorite music and videos with friends. Taking my connection to Spotify as an example, when the "Show on Profile" option is checked, your friends can see your Spotify username on your profile (depending on the name you use on social media; if it’s your real name, friends will see it).
- Inviting / Adding Friends
"Your username + the number after # (everyone has a unique number)"
To add a new friend, just enter their username followed by the number after "#" to quickly add them. Or click the name indicated by the arrow in the image above to automatically copy it (in the bottom left of the user interface), then paste it directly to your friend.
Inviting friends to join the server
Click the arrow next to the server name, and the option to "Invite Others" will appear. After clicking, you can invite your friends or copy the server's invitation link to share with them.
It is important to note that the system's default "server invitation link" has a validity period of only 7 days; after 7 days, this link will expire. If you need to use it long-term, you can adjust the expiration time and usage limit through the [Edit] function.
In the right area of the Discord user interface, you can also invite friends to the relevant server by right-clicking; additionally, you can individually adjust the speaking volume of different friends, add notes for easy identification, or stop receiving messages from specific individuals, among other customization features.
- Text and Video Channels
In the Discord 1.0 tutorial, it was mentioned that each server consists of "text" or "audio" channels, which are then subdivided into different small thematic channels. Users can click to switch between different channels. However, it should be noted that when you jump from an "audio" channel to a "text" channel, you can still hear or be heard from the "audio" channel! You must manually click "Disconnect" to officially leave that channel.
Discord Beginner's Tutorial 2.0 Discord usage tips, interface settings, introduction to Bot robots to help you get started with Discord.
In the Discord 1.0 tutorial, it was mentioned that each server consists of "text" or "audio" channels, which are then subdivided into different small thematic channels. Users can click to switch between different channels. However, it should be noted that when you jump from an "audio" channel to a "text" channel, you can still hear or be heard from the "audio" channel! You must manually click "Disconnect" to officially leave that channel.
- Discord Shortcuts
"Shortcuts" are essential skills for improving efficiency; but with so many, how can you remember them all? Do you have to jump to the shortcut introduction page every time you chat? Of course not; you just need to press "command + /" on your computer keyboard, and the shortcut page will pop up immediately, completely unaffected by your usage. Moreover, clicking the up, down, left, and right symbols in the upper right corner can also produce different sound effects, which is a nice little program to pass the time.
Fun Fonts
When chatting with friends or groups, do you want to highlight some key text? You can try the following tips:
-
Explanation of GreenPill and Planck Community Discord
- Binary Search Tree: The key value of any node must be greater than every node's key value in its left subtree and less than every node's key value in its right subtree.
- Balanced Binary Search Tree (no node is too deep).
- AVL Tree: The heights of the left and right subtrees of any node differ by at most 1.
- Red-Black Tree:
4.1 Rules of Red-Black Trees
"Leaf nodes" or "NULL nodes" do not contain data but only serve as indicators that the tree ends here; these nodes and their parent nodes are often omitted in diagrams.
Each node is either red or black.
The root node is black.
Each leaf node (leaf nodes refer to the end NIL pointer or NULL node) is black.
If a node is red, then both of its children are black.
For any node, every path from that node to its leaf nodes contains the same number of black nodes.
4.2 Tree Rotation
When the tree becomes unbalanced in depth, partial subtree rotations are needed.
4.2.1 Single Rotation
When inserting outside the binary balanced tree (inserting into the left child of node X or the right child of node X) disrupts the balance, it can be resolved through single rotation (left or right).
// T is the binary search tree, x is the node to be rotated
Left-Rotate(T, x)
y <- x.right // Assign y
x.right <- y.left // Assign y's left node to x's right (initially y is x's right node; the final goal is to assign y's left node to x's right, swapping y and x)
y.left.p <- x // Change y's left node's parent to x (a complete node swap requires double (triple) assignment)
y.p <- x.p // Assign x's parent to y's parent
// Depending on x's position, classify processing; if x is the root node, change the root to y; if x is the left (right) child of its parent, swap the parent's left (right) child to y
if x.p = null
else if x = x.p.left
then x.p.left <- y
else x.p.right <- y
y.left <- x
x.p <- y
The right rotation process is very similar and will not be elaborated further.
4.2.2 Double Rotation
When inserting inside the binary balanced tree (inserting into the right child of node X or inserting into the left child of node X) disrupts the balance, it can be resolved through double rotation (two single rotations).
Inserting into a binary search tree is simply a matter of comparing left and right to find the position and inserting directly (there is no case where the value to be inserted already exists).
Pseudocode:
Btree-Insert(T, z)
y <- null
x <- T.root
while x != null
do y <- x
if x.key > z.key
then x <- x.left
else x <- right
z.p <- y
if y = null
then z <- T.root
else if y.key > z.key
then y.left <- z
else y.right <- z
4.3.2 Insertion and Fixing in Red-Black Trees
Since red-black trees introduce a series of rules in addition to the basic binary balanced tree, adjustments after insertion require modifications.
Insertion in red-black trees (like ordinary binary search trees, but with the addition of final coloring and fixing operations):
b-Insert(T, z)
y <- null
x <- T.root
while x != null
do y <- x
if z.key < x.key
then x <- x.left
else x <- x.right
z.p <- y
if y = null
then T.root <- z // Empty tree
else if z.key < y.key
then y.left <- z
else y.right <- z
z.left = null
z.right = null
z.color = red
Rb-Insert-Fixup(T, z) // Perform fixing
Analyzing the various situations of insertion:
z has no parent (inserting into an empty tree), z becomes the root of the red-black tree, violating the color property of the root;
- z's parent is red, violating the property that adjacent nodes cannot both be red (but this situation must have a grandparent node, and the grandparent must be black);
For situation 1, simply coloring the node black resolves the issue (as it does not involve other rules).
For situation 2, the red-black tree is not violated, and no additional work is needed.
For situation 3, simply changing colors cannot completely resolve the issue; further classification is needed.
Fixing the red-black tree pseudocode:
Rb-Insert-Fixup(T, z)
while z.p.color = red
do if z.p = z.p.p.left
then y <- z.p.p.right
if y.color = red // Case 1: Uncle node is red
then z.p.color <- black // Recolor parent node to black
y.color <- black // Recolor uncle node to black
z.p.p.color <- red // Recolor grandparent node to red
z <- z.p.p // Point z to grandparent node, redoing the coloring process (as changing the grandparent's color may trigger a chain reaction violating red-black tree rules)
else if z = z.p.right // Case 2: Uncle node is black, and self is the right child of the parent
then z <- z.p // Point z to z's parent, using the current node for left rotation
Left-Rotate(T, z)
z.p.color <- black // Case 3: Uncle node is black, and self is the left child of the parent (if left rotation has occurred, then z is already the left child)
z.p.p.color <- red // Color parent node black, grandparent node red.
Right-Rotate(T, z.p.p) // Right rotation around the grandparent node
else // Swap rotation directions
T.root.color <- black
Looking again, if the parent node is red, the uncle is black, and self becomes the left child, initiate plan 3! Right rotation (actually, plan 3 + plan 2 is a double rotation).
The deletion process of a node in a red-black tree is as follows:
Rb-Tree-Delete(T, z)
if z.left = null or z.right = null // At least one child node is empty
then y <- z // y is used to represent the node to be deleted
else y <- Tree-Successor(z) // Assign z's successor node to y (the successor node is the next element in the in-order traversal of the set)
// In the case of at least one empty child node, replace that node with x
if y.left != null
then x <- y.left
else x <- y.right
// If the deleted node is the root node, replace it with the child node to become the root node; otherwise, replace it with the child node in its position
x.p <- y.p // Deletion operation
if y.p = null
then T.root <- x
else if y = y.p.left
then y.p.left <- x
else y.p.right <- y
// If there are two children, replace the value of the current node with the value of its child
if y != z
then z.key <- y.key
copy y's satellite data into z
if y.color = black // Deleting a red node does not violate the rules, but deleting a black node may cause various issues
then Rb-Delete-Fixup(T, x)
return y // Return the deleted node
Restoring the properties of the red-black tree after deletion:
b-Delete-Fixup(T, x)
while x != T.root and x.color = black
do if x = x.p.left // If x is the left child of the parent node, let w be its sibling node
then w <- x.p.right
if w.color = red // Sibling is red
then w.color <- black // Case 1: Set sibling node X to black (this ensures that w's color is always black later)
x.p.color <- red // Case 1: Set parent node to red
Left-Rotate(T, x.p) // Case 1: Perform left rotation around x's parent
w <- x.p.right // Case 1: w is defined as x's new sibling
if w.left.color = black and w.right.color = black // Both children of w are black
then w.color <- red // Case 2: Set sibling node to red
x <- x.p // Case 2: Set current node to parent node
else if w.right.color = black // Sibling's right child is black, left child is red (based on the previous if)
then w.left.color <- black // Case 3: Set sibling's left child's color to black
w.color <- red // Case 3: Set sibling node to red
Right-Rotate(T, w) // Case 3: Right rotation
w <- x.p.right // Case 3: w points to the new sibling node
w.color <- x.p.color // Case 4: Color sibling node with its parent's color
x.p.color <- black // Case 4: Color parent node black
w.right.color <- black // Case 4: Color sibling's right child black
Left-Rotate(T, x.p) // Case 4: Perform left rotation around x's parent
x <- T.root // Case 4: Set x to the root node
else // Swap rotation directions
x.color <- black
The above fixing situations may seem complex; below we use an analytical technique: we start adjusting from the node that replaces the deleted node and assume it has an extra black color. What does this extra black color mean? We are not adding another color to the nodes of the red-black tree; this is merely a hypothesis. We assume we are currently pointing to it, so it can accommodate two colors. If it was originally red, it is now red + black; if it was originally black, its color is now black + black. With this extra black color, the fifth property of the red-black tree remains unchanged. Now, we only need to restore the other properties, and the method is still to move toward the root and exhaustively explore all possibilities. "--saturnman.
Sorry, I didn't understand what Saturnman said. --greenpill
Regarding restoring the properties of the red-black tree, there are several situations:
The current node is black and is the root node; no action is needed (corresponding to the first judgment).
The current node is red (red + black); simply recoloring it black resolves the issue (corresponding to the last sentence directly coloring it, as it is replacing the position of a black node, it must be colored black).
Case 1: The current node is black + black, and the sibling node is red (because the sibling is red, both of its children are black).
Case 2: The current node is black + black, and the sibling node is black, and both children of the sibling are black.
Case 3: The current node is black + black, and the sibling node is black, and the left child of the sibling is red, while the right child is black.
Case 4: The current node is black + black, and the sibling node is black, and the right child of the sibling is red, while the left child can be anything.
The first two situations are already resolved; now let's handle the latter four situations.
Case 1: The current node is black + black, and the sibling node is red (because the sibling is red, both of its children are black).
Set the sibling node to black, color the parent node red, and then perform a left rotation.
Also, remember to reset the sibling node for subsequent operations.
Case 3: The current node is black + black, and the sibling node is black, and the left child of the sibling is red, while the right child is black.
Color the sibling node red, then perform a right rotation around the sibling node, updating w to the new sibling.
Case 4: The current node is black + black, and the sibling node is black, and the right child of the sibling is red, while the left child can be anything.
Color the sibling node with its parent's color, color the parent node black, color the sibling's right child black, and perform a left rotation around x's parent, setting x as the root node.
The successor node refers to the next node in the in-order traversal.
If a node has a right subtree, its successor node is the node with the smallest value in its right subtree (the so-called leftMostNode in the right subtree).
If a node does not have a right subtree, the relationship between that node and its parent node is assessed.
2.1 If the node is the left child of its parent, the successor node of that node is its parent.
2.2 If the node is the right child of its parent, it is necessary to keep looking up the tree until a node P is found, where node P is the left child of its parent node Q (refer to example 2, where the predecessor node is 1), then Q is the successor node of that node.
What is Green Pill? What is Cryptoeconomics? What is Regenerative Cryptoeconomics?
Greenpill Chinese Community
The Greenpill Chinese community is a self-organized community of web3 enthusiasts, social builders, future dreamers, and internet citizens influenced by Greenpill thought. The focus is on various topics surrounding blockchain, cryptoeconomics, sociological theories, game theory, and more. We aim to spread the spirit of "regenerative cryptoeconomics," calling for carbon neutrality and the use of clean energy, building new coordination mechanisms, funding public goods, and using regenerative cryptoeconomics to expand human development space and create a better world.
Why initiate the "Green Pill" book club?
We hope to attract and identify more like-minded individuals to join us and contribute to the industry. We aim to filter out those who are passionate about the Green Pill initiative and organize them to contribute to the next edition. We hope to gather those who love DAOs and are interested in governance topics to explore together.
Green Pill is a book that merges perspectives
This image is from a podcast episode where V God was interviewed, and both parties discussed green pills and public goods extensively. The French philosopher Gadamer has a famous concept regarding the interpretation of conceptual texts called "fusion of horizons," which refers to the idea that interpreters or readers come to the interpretation process with their own "pre-understandings" or knowledge structures, engaging with the text's "horizon" from their current context to grasp the meanings revealed by the text. This results in the phenomenon of merging the horizons of the interpreter, the text, and the current context. "Fusion of horizons" is not only a merging of history and reality but also a convergence between the interpreter and the interpreted. As Croce said, "All history is contemporary history." Historical texts and knowledge only generate meaning when they merge with the present.
I personally believe that the above concept is significant for understanding web3 and green pills. Because web3 provides a feasible foundation for a broader range of horizon fusion, truly open-source and community-iterative reinterpretation, re-reading, and re-creation. This is not just a dialogue with historical concepts in Gadamer's sense but a continuous merging possibility in the same time-space.
The Green Pill book, or pamphlet, is the best interpreter of this concept. The current version we have, the 0th edition, is a foundational structure waiting for all of us to re-create. Similar to a series of interview-style podcasts, book club exchanges, etc., these are all processes of interpretation and creation, until consensus is formed in the community and a new version of the Green Pill is created with more enriched content.
01.
Front Matter
Key Concepts
In the preview of the book club, the first four chapters mentioned actually refer to the first four parts, including the series preface, which I believe is crucial for understanding the initiatives proposed in this book and some key concepts related to public governance behind it.
Key Concept 1:
Tragedy of the Commons (Tragedy of the Big Pot)
The tragedy of the commons, also known as Hardin's tragedy, was translated by Zhang Weiying in the last century as "tragedy of public land."
A group of herders faces a pasture that is open to them, and each herder wants to raise one more cow because the additional profit from raising one more cow exceeds its cost. In the short term, this is profitable.
However, in the long term, the carrying capacity of a pasture is limited. If everyone raises one more cow, the average grass quantity will decrease, and the unit profit of all cows in the entire pasture will decline. If every herder increases their herd by one cow, the risk of overgrazing will increase, ultimately failing to meet the food needs of all cows, leading to starvation for all herders' cows. This is a tragedy of the commons.
In actual economic life, we often see such scenarios, especially in the environmental protection field. For example, an industrial enterprise benefits entirely from improving unit production efficiency, while the costs of pollution control are shared by everyone.
In this situation, there is a failure of coordination behind it, leading to market failure. This involves a contradiction in the rational person hypothesis.
Adam Smith stated that every economic person will rationally maximize their interests. In the long term, every additional cow will inevitably harm the interests of other rational individuals. So why do people only see short-term benefits? This is a conflict between a short-term rational person and a long-term rational person, which both conforms to and challenges the rational person hypothesis.
A simple explanation is that, using this pasture as an example, perhaps my generation will not suffer the final loss and negative externalities, so I might not care about this issue, leaving it for my descendants to handle. Many tragedies of the commons arise from such logic, ultimately leading to market failure.
Everyone's interest maximization ultimately leads to the maximization of negative externalities in the public domain.
The tragedy of the commons actually involves three discussion aspects: one is coordination failure, the second is externalities, and the last is long-termism.
How to solve the tragedy of the commons off-chain? The economic community has two approaches: turning left and turning right.
Left: Moving towards communism. Moving towards nationalization and socialism, but in this case, the government needs to obtain all information with zero information costs, which is practically impossible. For example, in China, there are policies for returning farmland in Inner Mongolia, and burning of straw is prohibited in North China. However, administrative power cannot completely penetrate this issue to achieve thorough nationalization. Supervision costs are too high.
Right: Neoliberalism; privatizing public resources; from a realistic perspective, it is difficult to achieve fairness, that is, dividing the cake. However, it is challenging to delineate resources and the environment fairly. For instance, pastures have different climatic conditions, etc.
For a long time, mainstream economics has been caught between these two directions when facing the tragedy of the commons, trapped in the tension between market and state. In the last century, the representative figure of public choice school, Ostrom, first explained through empirical research in the sense of political economy that the problem of public pond resources can be solved through community self-governance, extracting and reinforcing community power from the opposition between market and state: neither left nor right, community governance, local autonomy.
Ostrom believes that achieving such governance requires eight conditions:
7 and 8 are ideas of community stratification, while 3, 4, 5, and 6 are about how to design community mechanisms, and 1 and 2 describe the foundational structure. This is similar to DAO and on-chain governance.
Green Pill offers me two insights:
-
Community power can truly play a role in community governance and autonomy with the help of web3 technology. Web3 provides a technical foundation, means, and bridge for theory.
-
Green Pill is not a solution to problems but a sword, a tool of thought. Conflicts have always existed in history, but regardless of the type of conflict, the underlying logic has not changed. "Responding to the Changing Order of Conflicts."
Key Concept 2:
Can Blockchain Communities Become Nations?
Modern nations have two concepts: sovereign states and nation-states. Sovereign states came first, followed by nation-states.
In modern nations, citizens sign contracts with the government, relinquishing part of their power to obtain protection for their lives and property from the central government, entrusting the central government to maximize their interests in competition among states.
This diagram depicts countless British citizens facing the sovereign, with their backs to the observer. These citizens have transferred their rights to the sovereign, forming a powerful sovereign state.
The differences between blockchain and traditional states (there are two breaks):
-
Traditional states have territories, while blockchain is cross-ethnic and cross-regional;
-
Blockchain communities do not need to relinquish sovereignty. Although individuals may relinquish some rights, such as token staking, this is different from the relinquishment of sovereignty;
-
Traditional states have ethnic identities, while in blockchain communities, this is expressed as consensus.
Key Concept 3:
Why Green?
The essence of the green pill is green.
As mentioned in the podcast, the Earth is green, and the community structure defined by the green pill should also be green; holders lack sufficient expertise and management over public chains, and large holders may pose a threat to decentralized mechanisms.
Short-term: From POW to POS, green and sustainable, carbon neutral.
Long-term: Solve the tragedy of the commons—for the sustainable development of humanity.
02.
Introduction
Definition
What is Green Pill? What is Cryptoeconomics? What is Regenerative Cryptoeconomics?
The term "Cryptoeconomics" has caused much confusion, as people often do not understand what it should mean. The term itself may be misleading, as it seems to imply that there exists a parallel "encrypted" version of economics. However, this is a misunderstanding.
Cryptoeconomics is the application of cryptography and incentives to design a new system, network, or application.
Cryptoeconomics is not a subfield of economics but rather an application of cryptography that considers economic incentives and economic theory. Bitcoin, Ethereum, Zcash, and all other public blockchains are products of cryptoeconomics.
Regenerative cryptoeconomics: A regenerative version that occurs when cryptoeconomics becomes unsustainable. It transforms into a cryptoeconomic system that creates net positive externalities.
Disciplines related to cryptoeconomics include operations research and management, industrial and systems engineering, artificial intelligence, optimization and control theory, computer science and cryptography, psychology and decision science, political science and governance, philosophy, law and ethics, economics and game theory, etc.
From the perspective of a single discipline, conclusions can be quite one-sided. All these disciplines are constrained by a core issue: how to allocate resources. In cryptographic systems, it provides a possibility for coordinated allocation.
PlanckerDAO is a community of Ethereum builders, providing community and resources for developers, product engineers, and researchers to co-create the Ethereum ecosystem. We contribute our building power to create a better society using blockchain. Discord: https://discord.gg/AXFZuJ34WP
# This section mainly covers some Discord management tips#
-
Discord category and channel management
-
Initially, there was only one #general channel...
...quietly adding a #xp-grind, a #off-topic chat area, a #creation. More and more new channels are born and grow. Soon, you hear thousands of moderators shouting, "Please, can you find a way to organize these channels?" Then you hear someone say, "Okay, my bot hamster should be able to help." Yes, the ability to organize channels by category has emerged, ready to help you organize these channels together!
Do you need us to explain how permissions change? Then you’ve come to the right place!
Categories and Sub-ChannelsWhether you want to start a new server or organize channels on your existing server, you can organize these channels under the umbrella of a category, making them sub-channels of that category, giving your server's channels a more organized appearance.
Just like channels have permissions, you can give categories the same permissions. The best part is that you can synchronize permissions across all channels under the same category. If you have a separate personal user identity group, their permissions will still be dominated by the assigned identity group, but channels can synchronize with categories to simplify permission settings and look cleaner.
Creating CategoriesTo add a new category to channels, simply right-click on the server name or the scale icon next to the server name.
-
Drag and Drop
Once the categories are set up, you can start organizing the rooms! We already know that permissions can be set by category, so the system will ask if you want to synchronize with the category. Then you will be curious, what is permission synchronization? Can it be eaten?
Permission synchronization is a useful tool; once you approve this feature, all the scattered channels in the same category will automatically run to synchronize with the permissions on the category, so you don’t have to set permissions one by one!
-
- Permission Management
With the introduction of the category mechanism, channels will display two different statuses: "synchronized" or "unsynchronized." A channel that has been synchronized will completely synchronize its permissions with the category it belongs to.
You can right-click on "category," then click "edit category" to adjust permissions.
- Click the "Permissions" tab, and you can adjust permissions according to your needs or add identity groups.
- If you disable the "Read Message History" & "Use Voice Activity" permissions for certain users, users without permissions will not see a locked channel; those channels will not be displayed in their view from the start.
-
Please note: If you modify the permissions of a category, all sub-channels under that category will automatically synchronize their permissions together.
If you move a channel without synchronizing or set different permissions for a channel, that channel will display "permissions unsynchronized with category."
-
Identity Group Management
-
-
-
Common Discord Bot Tutorials
-
Creating servers and channels, copying channel IDs
First, you need to create a new server in Discord (or obtain administrative permissions for an existing server). Open your Discord account page in a browser—this makes it easier to navigate between the settings pages.
-
-
Click the "+" in the left pane.
-
Choose a server template based on your industry or create your own template.
-
-
- Specify the purpose for which you want to use it.
-
- Choose an image for the future server (1), specify a name (2), and then create (3).
-
- The server has been created. By default, two channels have been added—text and voice (1). To change channel settings, click the gear icon (2). You can add new channels by clicking the "+" next to the section name.
-
- Now you need to get the ID of the selected channel. To do this, you must first enable Developer Mode in your profile settings. Click the gear icon next to your nickname and photo.
-
Go to the APP Settings section, to the Advanced tab (1), and then toggle the Developer Mode selector—Developer Mode is now activated (2).
-
Return to the settings menu and right-click on the desired channel (1), selecting "Copy ID" from the pop-up menu—your channel ID will be copied (2). Save it in any text document so you won’t have to return to this step.
-
- Dework
To create a bot, go to the dedicated developer Discord page: https ://discord.com/developers/. Open it in an adjacent browser tab without logging out of your Discord account.
First, you need to create an application, then create a bot within that application and configure its permissions before adding the bot to the server.
- In the Applications tab, select New Application.
-
- First, you need to create an application, then create a bot within that application and configure its permissions before adding the bot to the server.
-
- The application has been created. Go to the Bot (1) tab and click "Add Bot" to add a new bot.
-
- Agree to add the bot to your application.
-
- The bot has been created. All information about it will be displayed in the Bot tab. Here you can change its name, add an image, and copy the bot token (1). You will need this token to configure the Discord module on the Appmaster.io platform. The developer portal will prompt you to save changes every time you make them (2).
Save the bot token so you don’t have to return to this step during subsequent configuration.
-
- Now go to the OAuth2 (1) tab—here you can configure permissions and get a link to your bot. In the SCOPES section, select bot (2), and in BOT PERMISSIONS, check the permissions you want to grant it; in our case, we only send messages, so select Send Message (3). Then copy the automatically generated Discord link (4).
-
- Paste the copied link into your browser's address bar and click it—your application window will open. Select your server from the dropdown (1), then click Continue (2).
-
- Ensure that you only grant the application (and the bot created within it) the necessary permissions, then add it to your server.
-
Connect the bot to the application via AppMaster.io Studio
Everything is ready. You have received the bot token for the Discord module and the channel ID for the posting form. Now go to AppMaster.io Studio and follow the instructions to configure the Discord module: connect the bot and send messages.
Dyno#
Discord Bot can automate all tasks.
A fully customizable server management Discord bot for your Discord server, featuring a simple and intuitive web dashboard. Server management just got a lot easier.
Dyno is used by over 7.7 million servers, and we invite you to try it out; we hope you enjoy it!
-
- Recording Bot
Invite Bot
Press Invite!
-
Commands
After entering the voice channel, you can input commands in the text channel where you want to keep records.
-
!record
: Start recording. -
!stop
: Stop recording without saving the file. -
!save
: Stop recording and save the file. -
MEE6#
MEE6, a Discord Bot, is trusted by over 19 million servers.
When users respond inconsistently, the MEE6 bot will automatically assign inconsistent roles. Below is a step-by-step guide to automatically assign user permissions using MEE6's reaction roles.
Setting up MEE6 reaction roles to self-assign inconsistent roles:
Go to https://mee6.xyz/dashboard
Log in with your Discord account.
Authorize the MEE6 bot to access your account.
Select the Discord server to which you want to add the MEE6 bot.
Click on the plugin name and then click on reaction roles.
Click Yes to enable the plugin.
If this is your first time adding a message, skip to step 8; otherwise, click New Message.
Fill in the fields.
Click Save.
Update the inconsistent permissions to allow @everyone to "read messages" and "add reactions."
Here is a more detailed step-by-step guide to establishing reaction roles in Discord:
Step 1. Go to https://mee6.xyz/dashboard
Step 2. Log in with your Discord account.
Step 3. Authorize the MEE6 bot to access your account.
Step 4. Select the Discord server to which you want to add the MEE6 bot.
Step 5. Click on Plugin Name and then click on Reaction Roles.
Step 6. Click Yes to enable the plugin.
Step 7. If this is your first time adding a message, skip to step 7; otherwise, click "New Message."
Step 8. Fill in the fields.
Channel - Choose the channel where you want the reaction role description to appear, usually #introduction or #read-first channel.
Message - Provide instructions for users to choose their roles. You need to include what each reaction they click will enable.
Embed Color - Choose the color to display on the side of the message. This will highlight the message in the color you select.
Reaction and Role - Choose the image and the role it will grant; you can select any common image or upload a custom image to the Discord server.
Reaction Mode
Default - Grants the role when the user clicks the reaction.
Reverse - Removes the role when the user clicks the reaction, which is useful for disabling certain server notifications.
Allow members to select multiple roles - This feature can be enabled or disabled for each message.
Step 9. Click Save.
You will see a screen like the one below, showing the reaction roles and the Discord channel where the message will be displayed.
Step 10. Update Discord permissions to allow @everyone to "read messages" and "add reactions."
Log into Discord and then click on the server where you want to enable reaction roles.
Go to Server Settings.
Click Roles.
Update the @everyone role to allow
Read Messages
Add Reactions
Visit Discord's support site for more information on how to set up Discord permissions.
How to disable the reaction role plugin?
Go to the dashboard and click on Reaction Roles.
Click Disable in the upper right corner.
You will also need to go into the Discord server and delete the post made by the bot.