Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F10615241
addrdb.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
addrdb.h
View Options
// Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2016 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_ADDRDB_H
#define BITCOIN_ADDRDB_H
#include
<fs.h>
#include
<net_types.h>
// For banmap_t
#include
<serialize.h>
#include
<string>
#include
<vector>
class
CAddress
;
class
CAddrMan
;
class
CDataStream
;
class
CChainParams
;
class
CBanEntry
{
public
:
static
const
int
CURRENT_VERSION
=
1
;
int
nVersion
;
int64_t
nCreateTime
;
int64_t
nBanUntil
;
CBanEntry
()
{
SetNull
();
}
explicit
CBanEntry
(
int64_t
nCreateTimeIn
)
{
SetNull
();
nCreateTime
=
nCreateTimeIn
;
}
SERIALIZE_METHODS
(
CBanEntry
,
obj
)
{
//! For backward compatibility
uint8_t
ban_reason
=
2
;
READWRITE
(
obj
.
nVersion
,
obj
.
nCreateTime
,
obj
.
nBanUntil
,
ban_reason
);
}
void
SetNull
()
{
nVersion
=
CBanEntry
::
CURRENT_VERSION
;
nCreateTime
=
0
;
nBanUntil
=
0
;
}
};
/** Access to the (IP) address database (peers.dat) */
class
CAddrDB
{
private
:
fs
::
path
pathAddr
;
const
CChainParams
&
chainParams
;
public
:
explicit
CAddrDB
(
const
CChainParams
&
chainParams
);
bool
Write
(
const
CAddrMan
&
addr
);
bool
Read
(
CAddrMan
&
addr
);
bool
Read
(
CAddrMan
&
addr
,
CDataStream
&
ssPeers
);
};
/** Access to the banlist database (banlist.dat) */
class
CBanDB
{
private
:
const
fs
::
path
m_ban_list_path
;
const
CChainParams
&
chainParams
;
public
:
CBanDB
(
fs
::
path
ban_list_path
,
const
CChainParams
&
_chainParams
);
bool
Write
(
const
banmap_t
&
banSet
);
bool
Read
(
banmap_t
&
banSet
);
};
/**
* Dump the anchor IP address database (anchors.dat)
*
* Anchors are last known outgoing block-relay-only peers that are
* tried to re-connect to on startup.
*/
void
DumpAnchors
(
const
CChainParams
&
chainParams
,
const
fs
::
path
&
anchors_db_path
,
const
std
::
vector
<
CAddress
>
&
anchors
);
/**
* Read the anchor IP address database (anchors.dat)
*
* Deleting anchors.dat is intentional as it avoids renewed peering to anchors
* after an unclean shutdown and thus potential exploitation of the anchor peer
* policy.
*/
std
::
vector
<
CAddress
>
ReadAnchors
(
const
CChainParams
&
chainParams
,
const
fs
::
path
&
anchors_db_path
);
#endif
// BITCOIN_ADDRDB_H
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sat, Nov 23, 10:02 (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4514334
Default Alt Text
addrdb.h (2 KB)
Attached To
rSTAGING Bitcoin ABC staging
Event Timeline
Log In to Comment