- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了我的新altercoin,但是当我第一次运行它时,它已经显示:“5周后没有可用的块源”。
我在局域网中启动另一台计算机,它们连接成功。
我使用Datacoin的代码。
static const uint256 hashGenesisBlockOfficial("f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb");
static const uint256 hashGenesisBlockTestNet("f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb");
// Genesis block
qDebug()<<"Genesis block";
const char* pszStartTopic = "The Times 26/Dec/2013 Chancellor on brink of second bailout for banks";//https://bitcointalk.org/index.php?topic=325735.0";
CTransaction txNew;
txNew.vin.resize(1);
txNew.vout.resize(1);
txNew.vin[0].scriptSig = CScript() << 0 << CBigNum(999) << vector<unsigned char>((const unsigned char*)pszStartTopic, (const unsigned char*)pszStartTopic + strlen(pszStartTopic));
txNew.vout[0].nValue = COIN;
txNew.vout[0].scriptPubKey = CScript();
CBlock block;
block.vtx.push_back(txNew);
block.hashPrevBlock = 0;
block.hashMerkleRoot = block.BuildMerkleTree();
block.nTime = 1387977869 ;//http://www.unixtimestamp.com/index.php
block.nBits = TargetFromInt(6);
block.nNonce = 49030125;
block.bnPrimeChainMultiplier = (uint64) 5651310;
if (fTestNet)
{
block.nTime = 1387977869 ;
block.nBits = TargetFromInt(4);
block.nNonce = 46032;
block.bnPrimeChainMultiplier = (uint64) 211890;
}
//// debug print
uint256 hash = block.GetHash();
printf("%s\n", hash.ToString().c_str());
qDebug()<<"hash:"<<hash.ToString().c_str();
printf("%s\n", hashGenesisBlock.ToString().c_str());
qDebug()<<"hashGenesisBlock:"<<hashGenesisBlock.ToString().c_str();
printf("%s\n", block.hashMerkleRoot.ToString().c_str());
qDebug()<<"block.hashMerkleRoot:"<<block.hashMerkleRoot.ToString().c_str();
assert(block.hashMerkleRoot == uint256("a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84"));
block.print();
assert(hash == hashGenesisBlock);
{
CValidationState state;
assert(block.CheckBlock(state, true, true));
assert(CheckProofOfWork(block.GetHeaderHash(), block.nBits, block.bnPrimeChainMultiplier, block.nPrimeChainType, block.nPrimeChainLength));
}
CBlock(hash=f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb, hashBlockHeader=7d6aeeb7ca2b87d2f48bbd7a675c8374691c4f44f0db1a10de66436bfbcb0188, ver=2, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84, nTime=1387977869, nBits=06000000, nNonce=49030125, vtx=1)
CTransaction(hash=a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84, ver=1, vin.size=1, vout.size=1, nLockTime=0, data.size=0)
CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, 4294967295), coinbase 0002e703455468652054696d65732032362f4465632f32303133204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
CTxOut(error)
ERROR: CheckPrimeProofOfWork() : block header hash under limit
ERROR: CheckProofOfWork() : check failed for prime proof-of-work
最佳答案
你必须挖掘创世区块。在最新的山寨币源头中没有代码可以为您进行挖掘,尽管源代码的早期版本会在那时自动创建一个新的创世块,而不是使断言失败。这被删除了,因为它不是必需的,而且如果他们的本地数据库变得不可用,实际上可能会给普通矿工带来更多的麻烦。
你可以尝试在你的源代码树上回到过去,找到你 fork 的源代码的早期版本,并尝试找到创建创世块的代码。当它运行时,它会尝试挖掘一个新的创世块,当它运行时,它会在该断言处再次失败。然后,您必须将该哈希和随机数放入 main.h 文件中,并为您的主网和测试网执行此操作。之后,断言将不再失败,并且您现在在代码中拥有了创世块的哈希值。
这是执行此操作的代码,以防您在旧源中找不到它。
// If genesis block hash does not match, then generate new genesis hash.
if (block.GetHash() != hashGenesisBlock)
{
printf("Searching for genesis block...\n");
// This will figure out a valid hash and Nonce if you're
// creating a different genesis block:
uint256 hashTarget = CBigNum().SetCompact(block.nBits).getuint256();
uint256 thash;
while(true)
{
thash = scrypt_blockhash(BEGIN(block.nVersion));
if (thash <= hashTarget)
break;
if ((block.nNonce & 0xFFF) == 0)
{
printf("nonce %08X: hash = %s (target = %s)\n", block.nNonce, thash.ToString().c_str(), hashTarget.ToString().c_str());
}
++block.nNonce;
if (block.nNonce == 0)
{
printf("NONCE WRAPPED, incrementing time\n");
++block.nTime;
}
}
printf("block.nTime = %u \n", block.nTime);
printf("block.nNonce = %u \n", block.nNonce);
printf("block.GetHash = %s\n", block.GetHash().ToString().c_str());
scrypt_blockhash()
并且您可能需要使用原始功能。所以修改代码:
thash = scrypt_blockhash(BEGIN(block.nVersion));
static char scratchpad[SCRYPT_SCRATCHPAD_SIZE];
scrypt_1024_1_1_256_sp(BEGIN(block.nVersion), BEGIN(thash), scratchpad);
scrypt_1024_1_1_256_sp
那么你还应该找到
SCRYPT_SCRATCHPAD_SIZE
的定义在头文件中也是如此。
关于bitcoin - 如何创建我的altercoin的创世 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772606/
我正在修改比特币源代码,并试图理解 testnet 模式下对等发现机制的确切工作方式,为此我做了以下更改: 禁用 DNS 种子发现以强制 bitcoind 回退以连接到硬编码节点。 将默认的硬编码节点
我正在编写一个比特币应用程序并希望实现“取消”功能。 Reddit 上的所有引用资料都表明,如果发生了 3 次以下的确认,从技术上讲,可以停止付款。也许只有一两分钟可用,但仍然如此。 我在比特币 ap
我可以将流程可视化的唯一方法是:在区 block 链中搜索与正在处理的交易具有相同源地址的所有交易,将它们全部加起来(包括正在处理的 trx)以验证它们加起来更少小于或等于源交易金额。 对每一笔比特币
我需要开发一个 Web 界面来显示以太坊和特定地址的最新交易。 我正在使用 web3 javascript 界面,但我无法找到获取最新交易的方法。 有什么办法吗? 最佳答案 您正在寻找 eth_get
我刚开始使用以太坊编写智能合约。 根据官方文档,编译智能合约需要删除合约源代码中的所有换行符: var greeterSource = 'contract mortal { address owner
我得到的最接近的是来自blockchain.info https://blockchain.info/qr?data=1Agb153xWsbqS9vt8gP4vBFKHkAchLMdSX&size=2
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在尝试使用获取交易信息 bitcoind gettransaction \ 9962d5c704ec27243364cbe9d384808feeac1c15c35ac790dffd1e9298
我对两个点对点客户端如何像比特币客户端一样在网状网络中相互连接很感兴趣。 那么当我启动比特币时,我的客户如何加入所有其他人?它如何找到第一个同行(谁可能知道其他人在哪里)? 谢谢! 最佳答案 比特币客
我有两台 PC 和 bitcoin-qt。在第一台 PC 上,我有一个用我的密码 AAAAAAA 加密的钱包,在我的第二台 PC 上,我有一个用其他密码 BBBBBBBB 加密的钱包。我想在我的第一台
我如何检查比特币地址(任何,不一定是我的)的余额,比如说在 Java 应用程序(或任何其他语言)中? 我需要类似 blockchain.info 上的功能或 biteasy.com但我不想使用他们的
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我正在使用 Coinbase API。我的应用程序通过回调生成新的接收地址。然而,当 BTC 到达这些地址中的任何一个时,回调似乎没有被触发。 我已经验证确实为新地址创建了回调,并且我的应用程序会正确
在哪里可以找到比特币实现(P2PKH 地址编码)之后每种货币的版本字节列表(地址前缀)? 我浏览了官方的比特币 github 和 BIP,但找不到任何相关信息。此处仅列出货币 ID。 我在 Walle
我创建了我的新altercoin,但是当我第一次运行它时,它已经显示:“5周后没有可用的块源”。 我在局域网中启动另一台计算机,它们连接成功。 我使用Datacoin的代码。 static const
我目前正在使用 SSD 在 Linux 上运行 geth mit,并且希望将部分(或全部)链数据移动到外部驱动器以节省空间。 我知道有一个命令行选项可以移动数据目录: geth --datadir
我正在寻找一个将验证 58 比特币私钥的正则表达式。我为公共(public)地址找到了这个: /^[13n][1-9A-Za-z][^OIl]{20,40}/ 但我不知道私钥的要求是什么。 最佳答案
我正在运行一个私有(private)比特币网络,为此我将两个 block 之间的目标时间更改为 12 秒,并将难度调整为 25 个 block 间隔。我用 50 个节点运行了大约 4 个小时的网络。在
我正在为 Android 应用程序寻找一个轻量级的比特币库。 我基本上需要一个比特币库,它可以让我创建一个私钥/公钥对(或者最好是一个带有可以序列化的 key 的钱包)。能够为交易设置最合适的费用并将
无论如何通过使用API RPC到bitcoind列出来自给定地址的所有交易?实际上,我正在使用 btcd 并且大多数非钱包功能与 bitcoind 相同,但我找不到任何方法来做到这一点。 最佳答案
我是一名优秀的程序员,十分优秀!