Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1// Copyright (c) 2011 The LevelDB Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file. See the AUTHORS file for names of contributors.5#include "util/hash.h"7#include <string.h>9#include "util/coding.h"11namespace leveldb {13uint32_t Hash(const char* data, size_t n, uint32_t seed) {14// Similar to murmur hash15const uint32_t m = 0xc6a4a793;16const uint32_t r = 24;17const char* limit = data + n;18uint32_t h = seed ^ (n * m);20// Pick up four bytes at a time21while (limit - data >= 4) {22uint32_t w = DecodeFixed32(data);23data += 4;24h += w;25h *= m;26h ^= (h >> 16);27}29// Pick up remaining bytes30switch (limit - data) {31case 3:32h += static_cast<uint8_t>(data[2]) << 16;33[[fallthrough]];34case 2:35h += static_cast<uint8_t>(data[1]) << 8;36[[fallthrough]];37case 1:38h += static_cast<uint8_t>(data[0]);39h *= m;40h ^= (h >> r);41break;42}43return h;44}46} // namespace leveldb
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.