multi: move DB schemas to channeldb/models
This commit moves the ChannelEdgePolicy, ChannelEdgeInfo, ChanelAuthProof and CachedEdgePolicy structs to the `channeldb/models` package.
This commit is contained in:
45 files changed
+1028
-968
No files matched your search
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/btcsuite/btcd/btcec/v2"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/models"
|
||||
"github.com/lightningnetwork/lnd/keychain"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
"github.com/lightningnetwork/lnd/netann"
|
||||
@@ -65,8 +66,8 @@ func createChannel(t *testing.T) *channeldb.OpenChannel {
|
||||
// our `pubkey` with the direction bit set appropriately in the policies. Our
|
||||
// update will be created with the disabled bit set if startEnabled is false.
|
||||
func createEdgePolicies(t *testing.T, channel *channeldb.OpenChannel,
|
||||
pubkey *btcec.PublicKey, startEnabled bool) (*channeldb.ChannelEdgeInfo,
|
||||
*channeldb.ChannelEdgePolicy, *channeldb.ChannelEdgePolicy) {
|
||||
pubkey *btcec.PublicKey, startEnabled bool) (*models.ChannelEdgeInfo,
|
||||
*models.ChannelEdgePolicy, *models.ChannelEdgePolicy) {
|
||||
|
||||
var (
|
||||
pubkey1 [33]byte
|
||||
@@ -98,18 +99,18 @@ func createEdgePolicies(t *testing.T, channel *channeldb.OpenChannel,
|
||||
// bit.
|
||||
dir2 |= lnwire.ChanUpdateDirection
|
||||
|
||||
return &channeldb.ChannelEdgeInfo{
|
||||
return &models.ChannelEdgeInfo{
|
||||
ChannelPoint: channel.FundingOutpoint,
|
||||
NodeKey1Bytes: pubkey1,
|
||||
NodeKey2Bytes: pubkey2,
|
||||
},
|
||||
&channeldb.ChannelEdgePolicy{
|
||||
&models.ChannelEdgePolicy{
|
||||
ChannelID: channel.ShortChanID().ToUint64(),
|
||||
ChannelFlags: dir1,
|
||||
LastUpdate: time.Now(),
|
||||
SigBytes: testSigBytes,
|
||||
},
|
||||
&channeldb.ChannelEdgePolicy{
|
||||
&models.ChannelEdgePolicy{
|
||||
ChannelID: channel.ShortChanID().ToUint64(),
|
||||
ChannelFlags: dir2,
|
||||
LastUpdate: time.Now(),
|
||||
@@ -120,9 +121,9 @@ func createEdgePolicies(t *testing.T, channel *channeldb.OpenChannel,
|
||||
type mockGraph struct {
|
||||
mu sync.Mutex
|
||||
channels []*channeldb.OpenChannel
|
||||
chanInfos map[wire.OutPoint]*channeldb.ChannelEdgeInfo
|
||||
chanPols1 map[wire.OutPoint]*channeldb.ChannelEdgePolicy
|
||||
chanPols2 map[wire.OutPoint]*channeldb.ChannelEdgePolicy
|
||||
chanInfos map[wire.OutPoint]*models.ChannelEdgeInfo
|
||||
chanPols1 map[wire.OutPoint]*models.ChannelEdgePolicy
|
||||
chanPols2 map[wire.OutPoint]*models.ChannelEdgePolicy
|
||||
sidToCid map[lnwire.ShortChannelID]wire.OutPoint
|
||||
|
||||
updates chan *lnwire.ChannelUpdate
|
||||
@@ -133,9 +134,9 @@ func newMockGraph(t *testing.T, numChannels int,
|
||||
|
||||
g := &mockGraph{
|
||||
channels: make([]*channeldb.OpenChannel, 0, numChannels),
|
||||
chanInfos: make(map[wire.OutPoint]*channeldb.ChannelEdgeInfo),
|
||||
chanPols1: make(map[wire.OutPoint]*channeldb.ChannelEdgePolicy),
|
||||
chanPols2: make(map[wire.OutPoint]*channeldb.ChannelEdgePolicy),
|
||||
chanInfos: make(map[wire.OutPoint]*models.ChannelEdgeInfo),
|
||||
chanPols1: make(map[wire.OutPoint]*models.ChannelEdgePolicy),
|
||||
chanPols2: make(map[wire.OutPoint]*models.ChannelEdgePolicy),
|
||||
sidToCid: make(map[lnwire.ShortChannelID]wire.OutPoint),
|
||||
updates: make(chan *lnwire.ChannelUpdate, 2*numChannels),
|
||||
}
|
||||
@@ -159,8 +160,8 @@ func (g *mockGraph) FetchAllOpenChannels() ([]*channeldb.OpenChannel, error) {
|
||||
}
|
||||
|
||||
func (g *mockGraph) FetchChannelEdgesByOutpoint(
|
||||
op *wire.OutPoint) (*channeldb.ChannelEdgeInfo,
|
||||
*channeldb.ChannelEdgePolicy, *channeldb.ChannelEdgePolicy, error) {
|
||||
op *wire.OutPoint) (*models.ChannelEdgeInfo,
|
||||
*models.ChannelEdgePolicy, *models.ChannelEdgePolicy, error) {
|
||||
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
@@ -209,7 +210,7 @@ func (g *mockGraph) ApplyChannelUpdate(update *lnwire.ChannelUpdate,
|
||||
|
||||
timestamp := time.Unix(int64(update.Timestamp), 0)
|
||||
|
||||
policy := &channeldb.ChannelEdgePolicy{
|
||||
policy := &models.ChannelEdgePolicy{
|
||||
ChannelID: update.ShortChannelID.ToUint64(),
|
||||
ChannelFlags: update.ChannelFlags,
|
||||
LastUpdate: timestamp,
|
||||
@@ -247,8 +248,8 @@ func (g *mockGraph) addChannel(channel *channeldb.OpenChannel) {
|
||||
}
|
||||
|
||||
func (g *mockGraph) addEdgePolicy(c *channeldb.OpenChannel,
|
||||
info *channeldb.ChannelEdgeInfo,
|
||||
pol1, pol2 *channeldb.ChannelEdgePolicy) {
|
||||
info *models.ChannelEdgeInfo,
|
||||
pol1, pol2 *models.ChannelEdgePolicy) {
|
||||
|
||||
g.mu.Lock()
|
||||
defer g.mu.Unlock()
|
||||
|
||||
@@ -3,7 +3,7 @@ package netann
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/models"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
@@ -12,9 +12,9 @@ import (
|
||||
// function is used to transform out database structs into the corresponding wire
|
||||
// structs for announcing new channels to other peers, or simply syncing up a
|
||||
// peer's initial routing table upon connect.
|
||||
func CreateChanAnnouncement(chanProof *channeldb.ChannelAuthProof,
|
||||
chanInfo *channeldb.ChannelEdgeInfo,
|
||||
e1, e2 *channeldb.ChannelEdgePolicy) (*lnwire.ChannelAnnouncement,
|
||||
func CreateChanAnnouncement(chanProof *models.ChannelAuthProof,
|
||||
chanInfo *models.ChannelEdgeInfo,
|
||||
e1, e2 *models.ChannelEdgePolicy) (*lnwire.ChannelAnnouncement,
|
||||
*lnwire.ChannelUpdate, *lnwire.ChannelUpdate, error) {
|
||||
|
||||
// First, using the parameters of the channel, along with the channel
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"github.com/btcsuite/btcd/btcutil"
|
||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/models"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -39,13 +39,13 @@ func TestCreateChanAnnouncement(t *testing.T) {
|
||||
ExtraOpaqueData: []byte{0x1},
|
||||
}
|
||||
|
||||
chanProof := &channeldb.ChannelAuthProof{
|
||||
chanProof := &models.ChannelAuthProof{
|
||||
NodeSig1Bytes: expChanAnn.NodeSig1.ToSignatureBytes(),
|
||||
NodeSig2Bytes: expChanAnn.NodeSig2.ToSignatureBytes(),
|
||||
BitcoinSig1Bytes: expChanAnn.BitcoinSig1.ToSignatureBytes(),
|
||||
BitcoinSig2Bytes: expChanAnn.BitcoinSig2.ToSignatureBytes(),
|
||||
}
|
||||
chanInfo := &channeldb.ChannelEdgeInfo{
|
||||
chanInfo := &models.ChannelEdgeInfo{
|
||||
ChainHash: expChanAnn.ChainHash,
|
||||
ChannelID: expChanAnn.ShortChannelID.ToUint64(),
|
||||
ChannelPoint: wire.OutPoint{Index: 1},
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/btcsuite/btcd/btcec/v2"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/models"
|
||||
"github.com/lightningnetwork/lnd/keychain"
|
||||
"github.com/lightningnetwork/lnd/lnwallet"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
@@ -84,12 +84,12 @@ func SignChannelUpdate(signer lnwallet.MessageSigner, keyLoc keychain.KeyLocator
|
||||
//
|
||||
// NOTE: The passed policies can be nil.
|
||||
func ExtractChannelUpdate(ownerPubKey []byte,
|
||||
info *channeldb.ChannelEdgeInfo,
|
||||
policies ...*channeldb.ChannelEdgePolicy) (
|
||||
info *models.ChannelEdgeInfo,
|
||||
policies ...*models.ChannelEdgePolicy) (
|
||||
*lnwire.ChannelUpdate, error) {
|
||||
|
||||
// Helper function to extract the owner of the given policy.
|
||||
owner := func(edge *channeldb.ChannelEdgePolicy) []byte {
|
||||
owner := func(edge *models.ChannelEdgePolicy) []byte {
|
||||
var pubKey *btcec.PublicKey
|
||||
if edge.ChannelFlags&lnwire.ChanUpdateDirection == 0 {
|
||||
pubKey, _ = info.NodeKey1()
|
||||
@@ -117,8 +117,8 @@ func ExtractChannelUpdate(ownerPubKey []byte,
|
||||
|
||||
// UnsignedChannelUpdateFromEdge reconstructs an unsigned ChannelUpdate from the
|
||||
// given edge info and policy.
|
||||
func UnsignedChannelUpdateFromEdge(info *channeldb.ChannelEdgeInfo,
|
||||
policy *channeldb.ChannelEdgePolicy) *lnwire.ChannelUpdate {
|
||||
func UnsignedChannelUpdateFromEdge(info *models.ChannelEdgeInfo,
|
||||
policy *models.ChannelEdgePolicy) *lnwire.ChannelUpdate {
|
||||
|
||||
return &lnwire.ChannelUpdate{
|
||||
ChainHash: info.ChainHash,
|
||||
@@ -137,8 +137,8 @@ func UnsignedChannelUpdateFromEdge(info *channeldb.ChannelEdgeInfo,
|
||||
|
||||
// ChannelUpdateFromEdge reconstructs a signed ChannelUpdate from the given edge
|
||||
// info and policy.
|
||||
func ChannelUpdateFromEdge(info *channeldb.ChannelEdgeInfo,
|
||||
policy *channeldb.ChannelEdgePolicy) (*lnwire.ChannelUpdate, error) {
|
||||
func ChannelUpdateFromEdge(info *models.ChannelEdgeInfo,
|
||||
policy *models.ChannelEdgePolicy) (*lnwire.ChannelUpdate, error) {
|
||||
|
||||
update := UnsignedChannelUpdateFromEdge(info, policy)
|
||||
|
||||
|
||||
+3
-2
@@ -3,6 +3,7 @@ package netann
|
||||
import (
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/models"
|
||||
)
|
||||
|
||||
// DB abstracts the required database functionality needed by the
|
||||
@@ -18,6 +19,6 @@ type DB interface {
|
||||
type ChannelGraph interface {
|
||||
// FetchChannelEdgesByOutpoint returns the channel edge info and most
|
||||
// recent channel edge policies for a given outpoint.
|
||||
FetchChannelEdgesByOutpoint(*wire.OutPoint) (*channeldb.ChannelEdgeInfo,
|
||||
*channeldb.ChannelEdgePolicy, *channeldb.ChannelEdgePolicy, error)
|
||||
FetchChannelEdgesByOutpoint(*wire.OutPoint) (*models.ChannelEdgeInfo,
|
||||
*models.ChannelEdgePolicy, *models.ChannelEdgePolicy, error)
|
||||
}
|
||||
Reference in new issue
Block a user