10

Go here and screw around with the genesis tx and nonce. You probably also want to change other stuff (network id) to avoid contacting live Monero nodes. I've helpfully decoded the genesis tx so you know/can guess what to change: version 01 unlock time (varint, height, 60 here) 3c vin length (value in) 01 vin #1 (of 1) type (gen, 0xff) ff height for gen ...


6

The genesis block is not predicted. The genesis block is decided upon in advance, and then hard coded as the first block that must appear in the blockchain. You can see it hard coded in the codebase here: std::string const GENESIS_TX = "...


4

I had the same problem. I had to solve it by writing custom function. It generates new account, save account keys to file, and sends block 0 reward money to it in genesis transaction. It also generates source code line to be changed in the cryptonote config file. Note: Monero CLI wallet would not see block reward sent in this transaction because it does ...


4

The block height refers to the most recent block that has been mined. The block number refers to any block up until and including the current block height. Blockchain exploring sites are generally slightly behind on listing the most current block height. When you use the status argument, the first values returned are [currently synced block]/[current block ...


4

The genesis block is automatically created for you from the genesis transaction and the genesis nonce that is hard coded here: https://github.com/monero-project/monero/blob/3ad4ecd4ff52f011ee94e0e80754b965b82f072b/src/cryptonote_config.h#L162 If you don't care about receiving the funds generated in the genesis transaction, then you can leave it unaltered ...


4

It's the output index. Assuming you just have one output (all the reward to a single output), just use 0. E.g. P=Hs(8rA || 0)G+B.


3

It should be easy to emit all the coins in the first block: Look for get_block_reward in cryptonote_basic_impl.cpp. You see how you're given the number of already generated coins. For the first block, it will be zero. In that case, you can return a large amount. For the second block, that value will be equal to the first block's reward. You can then return ...


3

the link to the original code base is maintained Depends what you mean by "link". There is a link to the original code that is maintained whether you fork publicly on GitHub or whether you clone to a private repository. However, it would make it harder to do things like issue pull requests if you have a clone instead of a fork. See https://stackoverflow....


3

It is spendable. There are a lot of clones which use the genesis block reward as premined coins


3

After you change the GENESIS_TX of "cryptonote_config.h", input following commands in your terminal: Creat node1: ./monerod --testnet --no-igd --hide-my-port --testnet-data-dir ~/test/node1 --p2p-bind-ip 127.0.0.1 --add-exclusive-node 127.0.0.1:38080 --add-exclusive-node 127.0.0.1:48080 Creat node2: ./monerod --testnet --testnet-p2p-bind-port ...


3

I fixed it changing this line from 1 to 0. your_coin/CMakeLists.txt:102 # set this to 0 if per-block checkpoint needs to be disabled set(PER_BLOCK_CHECKPOINT 0) It means that before I was running my coin with checkpoints when it does not should have because is a new blockchain.


2

In Monero, it is impossible to distinguish between spent and unspent outputs. Therefore no one could create a new blockchain with just the unspent outputs from the current blockchain, because the unspent outputs are unknowable.


2

The encoding of a varint is answered in this comment. It's not a straight hex string to decimal conversion. From the specification: Varints are a method of serializing integers using one or more bytes. Smaller numbers take a smaller number of bytes. Each byte in a varint, except the last byte, has the most significant bit (msb) set – this indicates that ...


2

Monero is based on Cryptonote, which has a forking guide. This guide will show you the places in Monero's codebase that you'll want to examine and modify: https://github.com/cryptonotefoundation/cryptonote#cryptonote-forking-how-to The main things you'll want to do are: Name the fork Decide on the total money supply, emission curve and time between blocks ...


1

Technically, you could create a new snapshot that would be smaller than the current chain, but not necessarily by much. Remember, there are a few very important qualities of a blockchain (and Monero's, in particular) that you would likely not want to overlook when considering a snapshot. The only outputs you could remove from the chain would be provably ...


1

First you need to send yourself some funds on the real Monero blockchain. It doesn't matter how much. show_transfers in is displaying your transaction id, which is also known as the transaction hash (because the transaction id is a hash of the transaction). This is not the same as the transaction public key. Look up this transaction id at xmrchain.net. ...


1

When you are done reading all of knaccc's reference list, you can take a look at: node-genesis-block @knaccc I don't have enough reputation to up vote your answer, and OP appears to have lost his craving to create a new altcoin :)


1

i had the same problem. The thing is that the wallet does not process the genesis coinbase tx. To process it, edit the src/wallet/wallet2.cpp after line #2131. add if ((m_blockchain.size() == 1) && (start_height == 0)) { cryptonote::block genesis; generate_genesis(genesis); if (m_blockchain[0] == get_block_hash(genesis)) { ...


1

Your objective is to have a unique genesis block. You could achieve this by altering the genesis transaction, for example by altering the output key and transaction public key so that your own wallet can be the beneficiary of the funds created in the genesis transaction. An easy way to do this would be to create a wallet address and then create a ...


1

The genesis block is not mined, it is just made. See some details: How can I create a new Monero genesis block?


1

Monero has a tail emission, so it will never be 100% mined. You could probably take it apart and put it back together with a hard cap, but that would entail more than changing a few config variables.


1

The blockchain is viewed as a typical C array. It is an ordered collection of blocks of size N, containing blocks with indices 0 to N-1 (for example, a blockchain of size 2 contains blocks 0 and 1). The term "height" is used to indicate the "distance" from the origin (the genesis block) as well as the size of the blockchain. So the height of the blockchain ...


1

The premine can be done for any crypto note coin. In the configuration file. You will set 2 areas. One will be the premine amount in percentage. The other variable to set is the wallet address that it will be sent to from the premine ,that will be conducted on first run. The cryptonote ,called forknote has a premine function and when it is set bails out ...


Only top voted, non community-wiki answers of a minimum length are eligible