/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ 56% complete


struct group_info init_groups = { .usage = ATOMIC_INIT(2) };
struct group_info *groups_alloc(int gidsetsize){
struct group_info *group_info;
int nblocks;
int i;


nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;
group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER);
if (!group_info)
return NULL;
group_info->ngroups = gidsetsize;
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);


if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks[0] = group_info->small_block;
else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
if (!b)
goto out_undo_partial_alloc;
group_info->blocks[i] = b;
}
}
return group_info;

EXPORT_SYMBOL(groups_alloc);


void groups_free(struct group_info *group_info)
{
if (group_info->blocks[0] != group_info->small_block) {
int i;
for (i = 0; i < group_info->nblocks; i++)
free_page((unsigned long)group_info->blocks[i]);
}
kfree(group_info);
}


EXPORT_SYMB|

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ launching_quai_network

/ sequence_initiated

/ 56% complete


struct group_info init_groups = { .usage = ATOMIC_INIT(2) };
struct group_info *groups_alloc(int gidsetsize){
struct group_info *group_info;
int nblocks;
int i;


nblocks = (gidsetsize + NGROUPS_PER_BLOCK - 1) / NGROUPS_PER_BLOCK;
/* Make sure we always allocate at least one indirect block pointer */
nblocks = nblocks ? : 1;
group_info = kmalloc(sizeof(*group_info) + nblocks*sizeof(gid_t *), GFP_USER);
if (!group_info)
return NULL;
group_info->ngroups = gidsetsize;
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);


if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks[0] = group_info->small_block;
else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
if (!b)
goto out_undo_partial_alloc;
group_info->blocks[i] = b;
}
}
return group_info;

EXPORT_SYMBOL(groups_alloc);


void groups_free(struct group_info *group_info)
{
if (group_info->blocks[0] != group_info->small_block) {
int i;
for (i = 0; i < group_info->nblocks; i++)
free_page((unsigned long)group_info->blocks[i]);
}
kfree(group_info);
}


EXPORT_SYMB|

0%_LOADING

/ launching_quai_network

/ sequence_initiated

/

loading...

REBUILDING CURRENCY
a new currency
a new financial system
a new world
/ launching_quai_network / sequence_initiated / scroll_to_commence_build
> Quai Network is a set of EVM-compatible blockchains that achieves 50k+ TPS without compromising decentralization.
pow2

Introduction

Quai Network’s long-awaited Iron Age Testnet is now live, with 8 million Mainnet Quai tokens allocated to mining incentives. Mining takes place using the ProgPoW hashing algorithm, which is a version of the Ethash algorithm that was developed to have improved ASIC resistance. The use of ProgPoW ensures that GPUs remain the optimal hardware to mine the network.

Quai is a multi-chain network that utilizes mining to interconnect many asynchronously operating chains. Due to Quai’s multi-chain architecture, there are some nuances to mining when compared to mining a single-chain network – each miner, for example, chooses a single “slice” of the network to mine out of the many available slices. This creates an interesting dynamic where miners are incentivized to regularly change which slice their hashrate is mining, in order to be mining the least-difficult slice available as often as possible.

This article covers the requirements/prerequisites to mining, how to get a mining rig hashing Quai, how Mainnet rewards for mining are structured, and some useful links and resources surrounding Quai mining. 

Mining Requirements

In order to GPU mine Quai, you’ll need the following:

The optimal setup for mining Quai is:

  • A global go-quai node (all slices)
  • 9 stratum proxies (all slices)
  • One or more GPUs on a different machine from the node/proxies running the quai-gpu-miner on HiveOS

This setup allows the operator to switch their hashrate between all slices as quickly as possible, allowing them to consistently keep their hashrate on the lowest difficulty slice, optimizing rewards/hash. 

While the optimal setup is a global node (running all slices) and a stratum proxy on each slice, mining can also be conducted with a slice node and a single stratum proxy on the same chain that the go-quai node is running. Additionally, while HiveOS is the recommended operating system to run the quai-gpu-miner on, there has also been success running on Ubuntu version 20.04 (NOT version 22.04). There is currently no support for Windows/WSL. Further, while it is recommended that the machine running the quai-gpu-miner be different from the machine running the node and proxy, it is possible to run all three programs simultaneously on the same machine. 

How to Mine

To get hashing, you’ll need to have a node running a stratum proxy to point your miner at. If you don’t yet have a node and stratum proxy set up, you’ll need to set up your node and set up your stratum proxy by following the instructions in the documentation before you can set up a GPU miner. If you already have a node and stratum proxy set up, keep reading. 

Once you have a node and proxy running, you’ll want to set up the quai-gpu-miner on your rig/machine with GPUs. This can be done by following the tutorials in the Quai Documentation for either Ubuntu version 20.04 or HiveOS, depending on what you choose to use to run your rig.

Once you’re up and hashing, you can optionally switch around which slice(s) you are mining to optimize your rewards. Miners who continually move their hashrate to mine the lowest difficulty slice will mine more blocks with their hashrate, and thus earn more in rewards than a miner who sets up on one slice and does not switch for the duration of Testnet. 

Mining Rewards

8 million Mainnet Quai tokens will be distributed to miners who mine canonical blocks during the Iron Age Testnet. With 9 slices, this amounts to ~888,888.89 Mainnet Quai in rewards per slice. Rewards are based on the proportion of blocks mined per address. For example, if a miner mines 10 blocks in Slice 1 and 10,000 total blocks are mined in Slice 1 during the Iron Age Testnet, the miner would receive 10/10,000=0.1% of the 888,888.89 in rewards available for Cyprus-1, equating to ~888.89 Quai in Mainnet rewards. All Mainnet rewards will be distributed at Quai Network’s Mainnet Launch, which is currently expected in 2024.

CRITICAL NOTE #1: If you are mining, you will need to keep the private keys for the accounts you mine into. For example, if you are mining into addresses created in Pelagus, you need to ensure you recorded the seed phrase displayed to you when initially setting up the wallet. IF YOU DO NOT KEEP THE PRIVATE KEYS OF THE ADDRESS(ES) YOU USE TO MINE, YOU WILL HAVE NO WAY TO PROVE HOW MANY BLOCKS YOU MINED IN THIS TESTNET WHEN IT IS TIME TO CLAIM MAINNET REWARDS.

CRITICAL NOTE #2: The Iron Age Testnet does not support mining pools. If you do not control the private keys of the address that is mining the blocks, you will not be able to claim any rewards. Our team at Dominant Strategies strongly recommends against using any mining pool due to the impossibility of proper reward distribution enforcement. 

Useful Links / Resources

Join us to build a better blockchain.

Quai Network is an open-source Proof-of-Entropy-Minima blockchain network utilizing the capabilities of merged mining to increase throughput and security. Users of Quai Network will enjoy fast transaction times without compromising decentralization and security. Miners will have competitive mining opportunities across the many blockchains within the network.

Capable of thousands of transactions per second, the Quai Network is a new solution to scalability that is soon to be ready for mainnet release.

Terms & Conditions / Disclaimer

The entirety of the Quai Genesis grants program, including the content of this article, is subject to the Terms and Conditions outlined here.

Opinions, ideas, and statements shared in this update are delivered with numerous assumptions, risks, and uncertainties which are subject to change over time. There are multiple risk factors, including those related to blockchain, cryptographic systems, and technologies generally, as well Quai’s business, operations and results of operations, that could cause actual results or developments anticipated not to be realized or, even if substantially realized, to fail to achieve any or all of the benefits that could be expected therefrom. We reserve the right to unilaterally, completely, or partially change plans, expectations, and intentions stated herein at any time and for any reason, in our sole and absolute discretion, and we undertake no obligation to update publicly or revise any forward-looking statement, whether as a result of new information, future developments, or otherwise. ACCORDINGLY, WE RECOMMEND THAT YOU DO NOT RELY ON, AND DO NOT MAKE ANY FINANCIAL DECISION OR INVESTMENT BASED ON, THE STATEMENTS CONTAINED IN THIS UPDATE OR ANY OF OUR UPDATES/ARTICLES — INCLUDING BUT NOT LIMITED TO ANY SELLING OR TRADING OF QUAI TOKENS, ETHER, OR ANY OTHER CRYPTOGRAPHIC OR BLOCKCHAIN TOKEN, OR THE SECURITIES OF ANY COMPANY.

The views, opinions, and statements made in this update are those of an individual author and not those of any institution, University, or legal entity operating within the jurisdiction of The United States or beyond. There is no association between these views, opinions, and statements and any for-profit or non-profit entity, particularly with Universities, Foundations, and other Agencies located within the United States. Any perception of such an association is purely accidental, and will be rectified immediately if brought to our attention by the reader.

Security

All Quai Network blockchains are braided together, keeping the entire network censorship resistant and secure creating Scalable Proof-of-Work.

Decentralization

Quai allows anyone to participate in network governance by running a node or miner. With thousands of participants distributed across the globe, there is no single party with the ability to modify or turn off the network, ensuring zero network downtime.

Scalability

Quai Network automatically expands with demand to upwards of 50,000 TPS while keeping fees under $0.01.

Consensus

Transactions in Quai Network can be locally confirmed prior to global confirmation, offering high throughput with the shortest possible time to economic finality.

Shared Security

All blockchains within Quai Network share Proof-of-Work security through merged mining. Every Quai transaction is eventually confirmed by 100% of network hash power.

Merge-Mined Parachains

Parachains inherit security and interoperability by merged mining with Quai Network, and create new incentives for miners and users.

The Prime Chain

The Prime blockchain acts as the "knot" tying all Quai Network chains together. The Prime blockchain braids sub networks together, facilitating the transfer of data across chains.

Sub Networks

Quai's many high-speed sub networks independently and asynchronously process transactions. All sub networks are braided together by the Prime chain, ensuring shared security and interoperability across the network.