banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.
follow
substack
tg_channel

Discord Training Course

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 establish the game development studio Hammer & Chisel in 2012. Their first game, Eternal Destiny, was released in 2014, and Citron expected it to become the first multiplayer online battle arena game on mobile platforms. However, due to its low popularity, they did not succeed. During the development process, Citron noticed that his team faced difficulties trying to communicate while playing 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 communication, while others (like Skype or TeamSpeak) were resource-heavy. This led developers to want to create a more user-friendly chat software based on modern technology: Discord.

Twitter, Telegram, and Discord are currently essential tools for cryptocurrency projects and communities, comparable in importance to what is referred to domestically as "two WeChat 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 censorship, 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) via a Google plugin.

This also reflects the growing influence of the cryptocurrency community within Discord.

Back to the main topic, for many domestic users, using Discord still has a certain threshold. The complex structure of Servers (the term for each independent project’s created server in Discord, uniformly translated as "servers" here) is quite different from traditional social media, and the distinction between projects and private messages is often blurred. 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 in community communication. Without further ado, this article will guide you through the basics of using Discord.

  1. What is Discord and how to use it?

Discord was established in 2015, the peak year of gaming popularity. Many online games consume a lot of computer resources during operation, and games that rely on team combat modes 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 games themselves could not 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 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 might have their own Discord server for their class, where they receive most of the information distributed by teachers and schools. It sounds like Discord's popularity is comparable to QQ in China.

  1. Getting Started with Discord

Like many other communication applications, Discord offers a free version for download on 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.

  1. Choosing to Join a Server

Many users in cryptocurrency communities start using Discord to gain first-hand project information. At this point, you can directly click 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 to Explore Public Servers at the bottom left of the main page, where Discord will recommend some popular servers based on popularity and themes.

  1. 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 verification.

A considerable number of projects also use bot verification methods to complete image classification tests via DM (direct message) before entering the server.

  1. Finding the Announcements Channel

Compared to channels like Rules and FAQ that can almost be skipped, the Announcements channel publishes 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 released, there will be specific channels to announce the details and gameplay of the event, 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.

  1. Discovering Events

Many players in the community 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 giveaways for following or retweeting, can be found in dedicated event channels.

Friends with good 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 their early promotions. Supporting is often as simple as joining Discord early and inviting some friends.

Don’t be afraid of the language barrier; with the help of translation software on your phone, completing most tasks is not too difficult.

  1. 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 to chat, and gradually you will find your presence in the community. This is also a unique identity recognition that NFT projects grant to community members or NFT holders. In this regard, NFTs have brought a new way of 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.

  1. 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 at the bottom left of the page 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 in the text and channels to create a youthful and lively atmosphere, making those entering the server feel pleasant and relaxed.

Once some necessary parts are set up, you can click Invite People at the top left 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.

  1. Why Discord? What are its features?

After getting a preliminary understanding of how to use Discord, many people may wonder what characteristics Discord possesses that make project parties rush to establish servers and build communities. In summary, it can be explained from the following aspects:

  1. Customized Servers

Compared to Twitter, Telegram, or the WeChat and Weibo we are familiar with, Discord creators can set up channels with different functions within the server, supporting each specific need with a unique sub-channel. This distinguishes it from simply established chat groups, as many people create channels to address different needs.

For example, in Telegram, when project parties create groups, they often need to set up multiple groups, such as one that allows community members to speak freely and another as a mute channel that only publishes official announcements. Different needs require 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, is where the team shares information with everyone, including some rules set by the team and the most important Announcements channel, the roadmap, and the previously mentioned Sneak-Peeks for project 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 community members chat together.

The fourth main channel is for 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.

image

These are gradually improved and established by each project party based on their project direction and interaction with the community.

  1. 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 successfully invited to the server by simply typing /invite in the Bot channel; the NFT sales status can be updated in real-time by bots; your activity level in the server will also be rated by bots, helping adjust the color of your name.

For many projects, the activity level largely determines whether members have the opportunity to receive airdrops or whitelists.

In summary, these bots have successfully spawned many Discord auxiliary services, helping Discord establish a more complete and functionally refined service.

  1. Classification of Community Members

In Discord, the left side of the page contains content and function sections, 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 holds the officer identity but also displays multiple identities in the BAYC server through different colored tags.

For a community, its activity level and member management are important issues. The member classification feature in Discord can effectively help project parties or server creators better motivate and manage users, while users can also clearly see different levels or roles of members from the member list, facilitating effective communication.

  1. Other Diverse Features and Settings

As mentioned earlier, Discord's powerful features go beyond text chat; it also includes voice, video conferencing, live streaming, and allows users to freely move between various voice rooms. You can simply enter the server and turn on your microphone to interact with those already in the voice room.

Generally, aside from official activity voice channels, project parties will also set up some public voice channels specifically for community members to use, and they will occasionally come in to interact with members.

Additionally, Discord offers emoji customization services. For younger Generation Z users who emphasize individuality or NFT projects that want to highlight their uniqueness, the member emoji customization service allows users to enjoy more emoji functionalities. After all, the memes brought by emojis are also an interesting aspect of community member interaction and the dissemination of cryptocurrency communities.

In terms of interactivity with other websites, Discord generously integrates various sites, allowing easy connectivity with sites like YouTube.

  1. A Note for New Users!

For newcomers, a risk warning is also necessary. Like many social platforms, Discord is also filled with scams and fraud.

We can see that almost every project lists a channel about 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, the person DMing 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 often leads to financial loss.

How to avoid such problems? 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 that project will no longer be able to DM you.

  1. Conclusion

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 whose system algorithms only reward influential or commercially valuable content, 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 shared interests and hobbies. In communicating with others, they find their place, creating new social structures and personalized adjustments to work 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 worldwide. This is also what excites people about cryptocurrency, blockchain, Web 3.0, and even the future metaverse.

Where are the pain points in the blockchain information market?

  1. Apps like WeChat and TG are filled with complex information, making it impossible to categorize information, consuming a lot of time to view information.

  2. The efficiency of information transmission from project parties is low, and complex information can easily cause users to miss key points.

  3. There is no way to categorize users; treating all users equally can easily lead to user loss.

  4. There is no way to reward users based on their contributions.

  5. It is difficult to maintain daily activity and increase user stickiness.

  6. 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?

  1. Multiple channels can be set under one project:

Categorizing information for precise and efficient transmission.

Categorizing topics to save time in viewing information.

Channel categories can be divided into:

  1. Welcome category

    • Notifications

    • Rules and contact information

    • Verification (optional)

    • Server issues and voting area:

  2. Brand fans

    • Product updates

    • New activities

    • Fan discussions

    • After-sales service

  3. Bot area

    • Card games

    • Money games

    • Etc., any bot can be set freely

  4. Voice channels are divided into two:

    • Project AMA

    • Topic discussions

  5. User member settings and permission settings

  6. Classify identity groups based on user identity, granting different permissions to help manage the community.

  7. Classify identity groups based on user contributions, granting different permissions for differentiated treatment, facilitating later incentives and user retention.

  8. Classify identity groups based on user levels, granting different permissions, beneficial for community user growth.

… Other details not elaborated.

How to expand the target user base of the Discord community

  1. Fission bot

Full name invite manager, a bot that counts the number of invites, automatically upgrades members' roles when the number of invites reaches your set target.

  1. Collaborate with administrators of large communities for promotion

  2. Official announcements of cooperation between projects, many are just formalities.

  3. Influencer collaborations.

  4. Community collaborations.

  5. 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 more concise; in fact, we have all experienced similar content, such as QQ groups and WeChat groups.

  1. Goal Positioning

First is positioning, clarifying the purpose of this group.

  1. Community Norms

① Establish group rules.

② Content output.

③ Interaction methods.

  1. Member Management

① Recruit administrators.

② Level members.

③ Active members within the group.

④ Strong IP.

  1. Community Incentives

① Social media giveaways. Social media and communities are closely linked.

Topic interaction giveaway activities on Twitter can be periodic and scheduled, for example, set for every Friday at 5 PM. Share and discuss on Discord.

② Material rewards.

Reward users who actively participate in group activities.

③ Contest activities.

For example, submission contests. Video collection activities, this is how activity planning goes from design to final feedback.

The Discord community consists of servers, channels, chat areas, and member areas, with servers being akin to super groups, allowing users to set up channels for communication within the server.

Discord initially aimed to meet the temporary communication needs of gamers, allowing quick entry into a room through 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, but the space remains, 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, and users can interact within their circles or step out to explore other groups, switching between multiple servers.

Functionally, Discord not only provides a platform for communication 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 maximum 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 undoubtedly become the "third space" on the internet, and thus has become a darling of capital. In September of this year, after the latest round of financing, Discord was valued at $15 billion, doubling its valuation from the previous round.

image

Regarding community building issues, I would like to share a few personal insights.

  1. Regular check-ins or submitting insights periodically, 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.

  2. Necessary communication is essential. However, in general communities, communication equates to chatting. It should be noted that casual chatting is not serious communication and is harmful rather than beneficial to the community. We should advocate for serious communication while discarding 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 comment on each other's submitted reading insights, which not only livens up the community atmosphere but also promotes collective improvement.

  3. Paid groups tend to have higher quality. Free things are often the most expensive because they steal our time. Because it's free, we don't take it seriously, and because we don't take it seriously, our efficiency decreases. In paid groups, because we have invested real money, we will cherish every submission and every communication more. Although we spend a little money, we gain a more efficient growth experience. The role of the group owner is crucial.

  4. Group owners must lead by example and work harder due to their identity, and they can also develop their organizational skills. This pressure is a significant motivation for personal growth. However, human energy, time, and ability to withstand pressure are limited. Sometimes group owners may have personal matters or feel fatigued, which is understandable. But 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 individual reasons but also allows other community members to gain better training in the position of group owner.

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, attracting excellent talent, and how to fully mobilize the other party's initiative within the rules. In the company field, it is called "producing output," while in the community, it is called "contributing content." Little red flowers are a form of recognition for value, similar to salaries, 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.

image

The course is divided into two parts.

Explaining Discord's Basic Functions#

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, joke around, and have fun with friends. We call this special place a server, which typically looks like this:

![You can join or create different servers for different communities—like a reading club 📚, a dance class group 💃, a study group in class 🖊️, or even a small group with your best friends.

How to use text and voice channels

Your server will consist of text channels and voice channels.

Text channels

Text channels are, as the name suggests, a space for communication using text. They allow conversations to be more organized and give all members a space to speak. You can create different channels for different topics, letting members know where to go to discuss what they want to talk about—for example, you can set up different channels for friends who like fishing or cooking.](https://images.mirror-media.xyz/publication-images/bv30Ovu9CquIyZEDFplwy.png?height=2048&width=2880)

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...

image

How to chat in the server?

In the voice channel, you can start chatting 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 in the server.

image

  • Discord Tips (like commonly used shortcuts)
  1. 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 usage 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 roam freely in 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. You can reach the settings page by clicking the gear icon next to your name in the user interface at the bottom left after logging in.

image

For example, if you're worried about forgetting to mute your microphone and being heard by others, you can adjust the settings in "Voice & Video" to a feature that requires you to hold down a button to speak; you can also choose 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 while video chatting with friends; or features like "echo cancellation" and "noise reduction" can be set according to your usage environment and needs.

In the previous section 1.0, it was mentioned that Discord can connect to different social media, such as 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 can see it).

image

image

  1. 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. Alternatively, you can 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.

image

Inviting friends to join the server

Click the arrow next to the server name, and you will see the option to "Invite Others." After clicking, you can invite your friends or copy the server's invitation link to share with them.

image

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 validity period and usage limit through the [Edit] function.

In the right-hand friend list 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 for different friends, add notes for easy identification, or stop receiving messages from specific individuals, among other customization features.

  1. Text and Video Channels

In the Discord 1.0 tutorial, it was mentioned that each server consists of "text" or "audio" channels, which are further 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 need to manually click "Disconnect" to officially leave that channel.

Discord New User Tutorial 2.0 Discord Usage Tips, Interface Settings, Introduction to Bots to Get You Started with Discord

In the Discord 1.0 tutorial, it was mentioned that each server consists of "text" or "audio" channels, which are further 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 need to manually click "Disconnect" to officially leave that channel.

image

  1. 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 without affecting your usage. Moreover, clicking the up and down arrows 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:

image

  • Explanation of GreenPill and Planck Community Discord

  1. 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.
  2. Balanced Binary Search Tree (no node is too deep).
  3. AVL Tree: The height difference between any node's left and right subtrees is at most 1.
  4. 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 drawings.

Each node is either red or black.
The root node is black.
Each leaf node (leaf node refers to the tree's 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

Inserting on the outside of a binary balanced tree (inserting into the left child of node X or the right child of node X) disrupts the balance, which can be resolved through single rotation (left or right).

image

// T is the binary search tree, x is the node to be rotated
Left-Rotate(T, x)
    y <- x.right                   // Assign value to y
    x.right <- y.left              // Assign y's left node to x's right node (initially y is x's right node, the ultimate goal is to give x's right node y's left node, swapping y and x's positions)
    y.left.p <- x                  // Modify y's left node's parent to x (double (triple) assignment counts as a complete node swap)
    y.p <- x.p                     // Assign x's parent to y's parent
    // Classify processing based on x's position; if x is the root node, change the root to y; if x is a left (right) child of its parent, swap the left (right) child of its parent with 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

Inserting on the inside of a binary balanced tree (inserting into the right child of node X or the left child of node X) disrupts the balance, which can be resolved through double rotation (single rotation twice).

image

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 situation 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;

image

  1. If z's parent is red, it violates the property that adjacent nodes cannot both be red (but this situation must have a grandparent node, and the grandparent must be black);

image

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 damaged, and no additional work is needed.
For situation 3, simply changing colors does not completely solve the problem and requires further classification.

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         // Change parent node's color to black
                         y.color <- black           // Change uncle node's color to black
                         z.p.p.color <- red         // Change grandparent node's color to red
                         z <- z.p.p                 // Point z to grandparent node, redoing the coloring process (as changing the grandparent's color may cause a chain reaction violating red-black tree rules)
                    else if z = z.p.right           // Case 2: Uncle node is black, and z is the right child of its 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 z is the left child of its parent (if left rotation has occurred, then z is already the left child)
                         z.p.p.color <- red         // Change parent node's color to black, grandparent node's color to red.
                         Right-Rotate(T, z.p.p)      // Perform right rotation on grandparent node
            else                                    // Swap rotation directions
    T.root.color <- black

Looking again, if the parent node is red and the uncle is black, and z becomes the left child, initiate plan 3! Right rotation (in fact, plan 3 + plan 2 is a double rotation).

image

At this point, the task is complete, and there are no issues.

To prevent the situation where both parent and child nodes are red from continuously developing upward and causing time bottlenecks, the following method can be used: When a new node A is added, along the path of A, as soon as a node X is found where both of its children are red, color X red and both children black. However, if X's parent is also red, use the previous strategy to adjust, performing single or double rotations and changing colors. This way, continuous backtracking is avoided (as the backtracking issue has been resolved). The process is consistent with the diagram below.

image

The process of deleting 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 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 where at least one child is empty, 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 its child to become the root; otherwise, replace the deleted node's position with its child
    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 current node's value with the child's value
    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 rules, 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 its parent, let w be its sibling
            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 on 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: Perform right rotation
                                w <- x.p.right                              // Case 3: w points to the new sibling
                        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 on x's parent
                        x <- T.root                                         // Case 4: Set x as the root node
            else                                    // Swap rotation directions
    x.color <- black

The above fixing situations may seem complex; let’s 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 red-black tree's nodes, but rather making an assumption that we are currently pointing to it, thus 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, the original property 5 of the red-black tree remains unchanged. Now, we just need to restore other properties, and the method is still to move upward toward the root and exhaust all possibilities. "--saturnman.

Sorry, I didn't understand what saturnman said. --greenpill

For restoring the properties of the red-black tree, there are several situations:

The current node is black and is the root node; no operation is needed (corresponding to the first judgment).
The current node is red (red + black); simply changing the red back to black resolves the issue (corresponding to the last sentence directly coloring it, as it is replacing a black node's position, it must be colored black regardless).
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 is any.

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).
Color the sibling node 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 using the sibling node as the pivot, updating w to the new sibling.

image

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 is any.
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 on x's parent, setting x as the root node.

image

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 needs to be determined.
2.1 If that node is the left child of its parent, the successor node is its parent.
2.2 If that node is the right child of its parent, it needs to keep searching up the tree until a node P is found, where P is the left child of its parent 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 the Greenpill philosophy. The focus is on themes 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 build a better world.

Why initiate a "Green Pill" reading club?

We hope to attract and identify more like-minded individuals to join us in contributing to the industry. We hope to filter out passionate individuals who love the "Green Pill" initiative and organize them to contribute to the next version. We hope to gather those who are passionate about DAOs and governance topics to explore together.

Green Pill is a book that integrates perspectives

This image is from a podcast episode where V God was interviewed, and both sides 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 fact that interpreters or readers, when interpreting, carry their own "pre-understandings" or knowledge structures, starting from their current situation, to engage with the text's "horizon" and grasp the meaning revealed by the text. This results in the phenomenon of the fusion of the interpreter's horizon, the text's horizon, and the current situation's horizon. "Fusion of horizons" is not only the fusion of history and reality but also the 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 quite significant for understanding web3 and the green pill. Because web3 provides a feasible foundation for a broader range of horizon fusion, truly reinterpreting, reinterpreting, and recreating in the sense of open source and community iteration. This is not merely a dialogue with historical concepts in Gadamer's sense but also a continuous possibility of fusion in the same time and space.

The Green Pill book, or pamphlet, is the best interpreter of this concept. The current version we have, the 0 version, is a foundational structure waiting for all of us to recreate. Similar to a series of interview-type podcasts, reading club exchanges, etc., this is a process of interpretation and creation, until a consensus is formed in the community and a new version of the Green Pill is recreated with more enriched content.

01.

Front Matter

Key Concepts

In the reading club's preview, the first four chapters mentioned actually refer to the first four sections, including the series preface in the front matter. I believe the front matter and introduction are 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 an open pasture; each herder wants to raise one more cow because the additional profit from raising one more cow exceeds its cost. In the short term, it seems 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 pasture will decline. If every herder increases 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 see such scenarios frequently, especially in the environmental protection field. For example, an industrial enterprise benefits from increasing unit production efficiency, while the cost of pollution control is shared by everyone.

In this situation, there is a failure of coordination behind it, a market failure. There exists 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, in the case of this pasture, perhaps my generation will not suffer the final loss and negative externality effects, so I might not care about this issue, leaving it to 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, one is externality, 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, and the information cost must be zero, which is practically impossible. For example, in our country, there are policies for returning farmland in Inner Mongolia, and burning straw is prohibited in North China. However, administrative power cannot completely penetrate this issue to achieve such thorough nationalization. The supervision cost is too high.

Right: Neoliberalism; privatizing public resources; from a practical standpoint, it is challenging to achieve fairness, which is akin to dividing a cake. However, it is difficult to delineate resources and the environment fairly, for example, pastures have different climatic conditions, etc.

For a long time, mainstream economics has been caught between these two directions when addressing the tragedy of the commons, trapped in the tension between market and state. In the last century, the representative figure of public choice theory, Ostrom, first explained through empirical research in the sense of political economy that the issue of public pond resources can be addressed through community self-governance, extracting and strengthening 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 about 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:

  1. Community power can truly play a role in community governance and autonomy through web3 technology. Web3 provides a technical foundation, means, and bridge for theory.

  2. The green pill is not a problem-solving approach but a sword, a tool for thought. Conflicts always exist in history, but regardless of the type of conflict, the underlying logic remains unchanged. "Responding to changes in conflict order."

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 the central government's protection of individual life and property, entrusting the central government to maximize their interests in competition between nations.

This diagram depicts countless British citizens facing the sovereign, with their backs to the observer. These citizens have transferred their rights to the sovereign, constituting a powerful sovereign state.

The differences between blockchain and traditional states (there are two breaks):

  1. Traditional states have territories, while blockchain is cross-ethnic and cross-regional;

  2. 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;

  3. Traditional states have national identity, while this is expressed as consensus in blockchain communities.

Key Concept 3:

Why Green?

The essence of the green pill is green.

In the podcast, it was mentioned that the earth is green, and the community structure defined by the green pill should also be green; holders lack expertise and insufficient management of 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: Solving 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 may be 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.

image

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 use blockchain to create a better society. 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, "Well, my machine 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-channels

    Whether 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 Categories

    To add a new category to channels, simply right-click on the server name or the scale icon next to the server name.

image

  • 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 you whether you want to synchronize with the category. Then you might wonder, what is permission synchronization? Can it be eaten?
    Permission synchronization is a useful tool; once you enable this feature, all the scattered channels in the same category will automatically run to synchronize with the permissions of the category, so you don’t have to set permissions one by one!

image

    • 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" and then click "edit category" to adjust permissions.

image

  • Click the "Permissions" tab, and you can adjust permissions according to your needs or add identity groups.

image

  • If you disable "Read Message History" & "Use Voice Activity" permissions for certain users, users without permissions will not see a locked channel; those channels will not display in their view from the start.

image

  • Please note: If you modify the permissions of a category, all sub-channels under that category will automatically synchronize their permissions.

    If you move channels without synchronizing or set different permissions for a specific channel, that channel will display "permissions not synchronized with the category."

    • Identity Group Management

image

  • Common Discord Bot Tutorials

  • Creating servers and channels, copying channel IDs

    First, you need to create a new server in Discord (or gain admin rights to an existing server). Open your Discord account page in the browser—this makes it easier to navigate between the settings pages.

image

    1. Click the "+" in the left pane.

    2. Choose a server template based on your industry or create your own template.

    3. Specify the purpose for which you will use it.

image

    1. Choose an image for the future server (1), specify a name (2), and then create (3).

image

    1. 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.
    1. 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.

image

  1. Go to the APP Settings section, to the Advanced tab (1), and then toggle the developer mode selector—developer mode is now activated (2).

  2. Return to the settings menu and right-click on the desired channel (1), then select "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.

image

    • 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.

    1. In the Applications tab, select New Application.
    1. 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.

image

image

    1. The application has been created. Go to the Bot (1) tab and click "Add Bot" to add a new bot.

image

    1. Agree to add a bot to your application.

image

    1. 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 won't have to return to this step during subsequent configurations.

image

    1. 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).

image

    1. 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).

image

image

    1. Ensure that you only grant the application (and the bot created within it) the necessary permissions before adding it to your server.

image

  • 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, with a simple and intuitive web dashboard. Server management has just become much easier.

    Dyno is used by over 7.7 million servers, and we invite you to try it out; we hope you enjoy it!

image

    • Recording Bot

    Invite Bot

    Invite! Press it

image

image

  • Commands

    After entering the voice channel, you can input commands in the text channel where you want to keep records.

image

  • !record: Start recording

  • !stop: Stop recording without saving the file

  • !save: Stop recording and save the file

  • MEE6#

image

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 setting up MEE6's reaction roles to automatically assign user permissions based on their responses.

Setting up MEE6 reaction roles to automatically assign inconsistent roles to users:

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.

image

Step 3. Authorize the MEE6 bot to access your account.

image

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.

image

Step 6. Click yes to enable the plugin.

image

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 in #introduction or #read-first channels.

Message - Provide instructions for users to select 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 choose.

Reactions and Roles - Choose images and the roles they will grant; you can select any common image or upload a custom image to the Discord server.

Reaction Mode 

    Default - Grants roles when users click the reaction.

    Reverse - Removes roles when users click 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 message that will display in the Discord channel.

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 on Roles.

Update the @everyone role to allow

    Read Messages

    Add Reactions

Visit Discord's support website for more information on how to set up permissions in Discord.
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.

image

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.