rocksdb #29
4
db/db.go
|
@ -469,8 +469,8 @@ func ReadWriteRawNCF(db *grocksdb.DB, options *IterOptions, out string, n int) {
|
||||||
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
|
|||||||
value := kv.Value.([]byte)
|
value := kv.Value.([]byte)
|
||||||
keyHex := hex.EncodeToString(key)
|
keyHex := hex.EncodeToString(key)
|
||||||
valueHex := hex.EncodeToString(value)
|
valueHex := hex.EncodeToString(value)
|
||||||
log.Println(keyHex)
|
//log.Println(keyHex)
|
||||||
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
|
|||||||
log.Println(valueHex)
|
//log.Println(valueHex)
|
||||||
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
|
|||||||
file.WriteString(keyHex)
|
file.WriteString(keyHex)
|
||||||
file.WriteString(",")
|
file.WriteString(",")
|
||||||
file.WriteString(valueHex)
|
file.WriteString(valueHex)
|
||||||
|
|
||||||
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
no need to start these with N no need to start these with N
and many of these are unused and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families typo: Famlies -> Families
this can be unexported this can be unexported
still need this? still need this?
typo typo
👀 :eyes:
I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation. I agree the "N" can go. I copied these all over from the Python. where I believe they are similarly unused, because I thought it might be the defacto documentation.
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this. ```
// Valid returns false only when an Iterator has iterated past either the
// first or the last key in the database.
func (iter *Iterator) Valid() bool {
return C.rocksdb_iter_valid(iter.c) != 0
}
```
If our iterator was to try to go off the end of the db, or the front if we're going backwards, we need to check this.
|
|
@ -102,8 +102,8 @@ func OpenAndFillTmpDB(filePath string) (*grocksdb.DB, [][]string, func(), error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestResolve(t *testing.T) {
|
func TestResolve(t *testing.T) {
|
||||||
filePath := "../resources/reposted_claim.csv"
|
filePath := "../testdata/W.csv"
|
||||||
db, _, toDefer, err := OpenAndFillTmpDB(filePath)
|
db, _, toDefer, _, err := OpenAndFillTmpDBCF(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
|
@ -115,7 +115,7 @@ func TestResolve(t *testing.T) {
|
||||||
|
|
||||||
func TestIter(t *testing.T) {
|
func TestIter(t *testing.T) {
|
||||||
|
|
||||||
filePath := "../resources/reposted_claim.csv"
|
filePath := "../testdata/W.csv"
|
||||||
|
|
||||||
db, records, toDefer, handle, err := OpenAndFillTmpDBCF(filePath)
|
db, records, toDefer, handle, err := OpenAndFillTmpDBCF(filePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -59,6 +59,41 @@ const (
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
OnesCompTwiddle32 uint32 = 0xffffffff
|
OnesCompTwiddle32 uint32 = 0xffffffff
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func GetPrefixes() [][]byte {
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
return [][]byte{
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimToSupport},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{SupportToClaim},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimToTXO},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{TXOToClaim},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimToChannel},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ChannelToClaim},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimShortIdPrefix},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{EffectiveAmount},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
why is this [][]byte and not []byte? all the prefixes are bytes why is this [][]byte and not []byte? all the prefixes are bytes
Because these need to be strings to actually specify column family names, but bytes when being used as prefixes, so I iterate over the [][]byte and convert the []byte to string for each when opening the full db. Because these need to be strings to actually specify column family names, but bytes when being used as prefixes, so I iterate over the [][]byte and convert the []byte to string for each when opening the full db.
|
|||||||
|
{ClaimExpiration},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimTakeover},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{PendingActivation},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ActivatedClaimAndSupport},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ActiveAmount},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{Repost},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{RepostedClaim},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{Undo},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ClaimDiff},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{Tx},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{BlockHash},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{Header},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{TxNum},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{TxCount},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{TxHash},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{UTXO},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{HashXUTXO},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{HashXHistory},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{DBState},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{ChannelCount},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{SupportAmount},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
{BlockTXs},
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
}
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
}
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
|
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|||||||
type PrefixRowKV struct {
|
type PrefixRowKV struct {
|
||||||
Key interface{}
|
Key interface{}
|
||||||
Value interface{}
|
Value interface{}
|
||||||
|
|
||||||
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
why snake case here? why snake case here?
if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25 if this is a fixed size, should it be an array? or even a chainhash.Hash? https://github.com/lbryio/lbcd/blob/master/chaincfg/chainhash/hash.go#L25
i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address. i suggest using lbcd types as much as possible where it makes sense. if something is a Hash, make it a Hash. if its an Address, make it an Address.
|
|
@ -145,144 +145,152 @@ func testGeneric(filePath string, prefix byte, numPartials int) func(*testing.T)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSupportAmount(t *testing.T) {
|
func TestSupportAmount(t *testing.T) {
|
||||||
testGeneric("../../resources/support_amount.csv", prefixes.SupportAmount, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.SupportAmount)
|
||||||
|
testGeneric(filePath, prefixes.SupportAmount, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestChannelCount(t *testing.T) {
|
func TestChannelCount(t *testing.T) {
|
||||||
testGeneric("../../resources/channel_count.csv", prefixes.ChannelCount, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ChannelCount)
|
||||||
|
testGeneric(filePath, prefixes.ChannelCount, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDBState(t *testing.T) {
|
func TestDBState(t *testing.T) {
|
||||||
testGeneric("../../resources/db_state.csv", prefixes.DBState, 0)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.DBState)
|
||||||
|
testGeneric(filePath, prefixes.DBState, 0)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBlockTxs(t *testing.T) {
|
func TestBlockTxs(t *testing.T) {
|
||||||
testGeneric("../../resources/block_txs.csv", prefixes.BlockTXs, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.BlockTXs)
|
||||||
|
testGeneric(filePath, prefixes.BlockTXs, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTxCount(t *testing.T) {
|
func TestTxCount(t *testing.T) {
|
||||||
testGeneric("../../resources/tx_count.csv", prefixes.TxCount, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.TxCount)
|
||||||
|
testGeneric(filePath, prefixes.TxCount, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTxHash(t *testing.T) {
|
func TestTxHash(t *testing.T) {
|
||||||
testGeneric("../../resources/tx_hash.csv", prefixes.TxHash, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.TxHash)
|
||||||
|
testGeneric(filePath, prefixes.TxHash, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTxNum(t *testing.T) {
|
func TestTxNum(t *testing.T) {
|
||||||
testGeneric("../../resources/tx_num.csv", prefixes.TxNum, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.TxNum)
|
||||||
|
testGeneric(filePath, prefixes.TxNum, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTx(t *testing.T) {
|
func TestTx(t *testing.T) {
|
||||||
testGeneric("../../resources/tx.csv", prefixes.Tx, 1)(t)
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.Tx)
|
||||||
|
testGeneric(filePath, prefixes.Tx, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestHashXHistory(t *testing.T) {
|
func TestHashXHistory(t *testing.T) {
|
||||||
filePath := "../../resources/hashx_history.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.HashXHistory)
|
||||||
testGeneric(filePath, prefixes.HashXHistory, 2)(t)
|
testGeneric(filePath, prefixes.HashXHistory, 2)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUndo(t *testing.T) {
|
func TestUndo(t *testing.T) {
|
||||||
filePath := "../../resources/undo.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.Undo)
|
||||||
testGeneric(filePath, prefixes.Undo, 1)(t)
|
testGeneric(filePath, prefixes.Undo, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBlockHash(t *testing.T) {
|
func TestBlockHash(t *testing.T) {
|
||||||
filePath := "../../resources/block_hash.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.BlockHash)
|
||||||
testGeneric(filePath, prefixes.BlockHash, 1)(t)
|
testGeneric(filePath, prefixes.BlockHash, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBlockHeader(t *testing.T) {
|
func TestBlockHeader(t *testing.T) {
|
||||||
filePath := "../../resources/header.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.Header)
|
||||||
testGeneric(filePath, prefixes.Header, 1)(t)
|
testGeneric(filePath, prefixes.Header, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimToTXO(t *testing.T) {
|
func TestClaimToTXO(t *testing.T) {
|
||||||
filePath := "../../resources/claim_to_txo.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimToTXO)
|
||||||
testGeneric(filePath, prefixes.ClaimToTXO, 1)(t)
|
testGeneric(filePath, prefixes.ClaimToTXO, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTXOToClaim(t *testing.T) {
|
func TestTXOToClaim(t *testing.T) {
|
||||||
filePath := "../../resources/txo_to_claim.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.TXOToClaim)
|
||||||
testGeneric(filePath, prefixes.TXOToClaim, 2)(t)
|
testGeneric(filePath, prefixes.TXOToClaim, 2)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimShortID(t *testing.T) {
|
func TestClaimShortID(t *testing.T) {
|
||||||
filePath := "../../resources/claim_short_id_prefix.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimShortIdPrefix)
|
||||||
testGeneric(filePath, prefixes.ClaimShortIdPrefix, 3)(t)
|
testGeneric(filePath, prefixes.ClaimShortIdPrefix, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimToChannel(t *testing.T) {
|
func TestClaimToChannel(t *testing.T) {
|
||||||
filePath := "../../resources/claim_to_channel.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimToChannel)
|
||||||
testGeneric(filePath, prefixes.ClaimToChannel, 3)(t)
|
testGeneric(filePath, prefixes.ClaimToChannel, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestChannelToClaim(t *testing.T) {
|
func TestChannelToClaim(t *testing.T) {
|
||||||
filePath := "../../resources/channel_to_claim.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ChannelToClaim)
|
||||||
testGeneric(filePath, prefixes.ChannelToClaim, 4)(t)
|
testGeneric(filePath, prefixes.ChannelToClaim, 4)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimToSupport(t *testing.T) {
|
func TestClaimToSupport(t *testing.T) {
|
||||||
filePath := "../../resources/claim_to_support.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimToSupport)
|
||||||
testGeneric(filePath, prefixes.ClaimToSupport, 3)(t)
|
testGeneric(filePath, prefixes.ClaimToSupport, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSupportToClaim(t *testing.T) {
|
func TestSupportToClaim(t *testing.T) {
|
||||||
filePath := "../../resources/support_to_claim.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.SupportToClaim)
|
||||||
testGeneric(filePath, prefixes.SupportToClaim, 2)(t)
|
testGeneric(filePath, prefixes.SupportToClaim, 2)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimExpiration(t *testing.T) {
|
func TestClaimExpiration(t *testing.T) {
|
||||||
filePath := "../../resources/claim_expiration.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimExpiration)
|
||||||
testGeneric(filePath, prefixes.ClaimExpiration, 3)(t)
|
testGeneric(filePath, prefixes.ClaimExpiration, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimTakeover(t *testing.T) {
|
func TestClaimTakeover(t *testing.T) {
|
||||||
filePath := "../../resources/claim_takeover.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimTakeover)
|
||||||
testGeneric(filePath, prefixes.ClaimTakeover, 1)(t)
|
testGeneric(filePath, prefixes.ClaimTakeover, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPendingActivation(t *testing.T) {
|
func TestPendingActivation(t *testing.T) {
|
||||||
filePath := "../../resources/pending_activation.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.PendingActivation)
|
||||||
testGeneric(filePath, prefixes.PendingActivation, 4)(t)
|
testGeneric(filePath, prefixes.PendingActivation, 4)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestActivated(t *testing.T) {
|
func TestActivated(t *testing.T) {
|
||||||
filePath := "../../resources/activated_claim_and_support.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ActivatedClaimAndSupport)
|
||||||
testGeneric(filePath, prefixes.ActivatedClaimAndSupport, 3)(t)
|
testGeneric(filePath, prefixes.ActivatedClaimAndSupport, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestActiveAmount(t *testing.T) {
|
func TestActiveAmount(t *testing.T) {
|
||||||
filePath := "../../resources/active_amount.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ActiveAmount)
|
||||||
testGeneric(filePath, prefixes.ActiveAmount, 5)(t)
|
testGeneric(filePath, prefixes.ActiveAmount, 5)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEffectiveAmount(t *testing.T) {
|
func TestEffectiveAmount(t *testing.T) {
|
||||||
filePath := "../../resources/effective_amount.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.EffectiveAmount)
|
||||||
testGeneric(filePath, prefixes.EffectiveAmount, 4)(t)
|
testGeneric(filePath, prefixes.EffectiveAmount, 4)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRepost(t *testing.T) {
|
func TestRepost(t *testing.T) {
|
||||||
filePath := "../../resources/repost.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.Repost)
|
||||||
testGeneric(filePath, prefixes.Repost, 1)(t)
|
testGeneric(filePath, prefixes.Repost, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRepostedClaim(t *testing.T) {
|
func TestRepostedClaim(t *testing.T) {
|
||||||
filePath := "../../resources/reposted_claim_cf.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.RepostedClaim)
|
||||||
testGeneric(filePath, prefixes.RepostedClaim, 3)(t)
|
testGeneric(filePath, prefixes.RepostedClaim, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClaimDiff(t *testing.T) {
|
func TestClaimDiff(t *testing.T) {
|
||||||
filePath := "../../resources/claim_diff.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.ClaimDiff)
|
||||||
testGeneric(filePath, prefixes.ClaimDiff, 1)(t)
|
testGeneric(filePath, prefixes.ClaimDiff, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUTXO(t *testing.T) {
|
func TestUTXO(t *testing.T) {
|
||||||
filePath := "../../resources/utxo.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.UTXO)
|
||||||
testGeneric(filePath, prefixes.UTXO, 1)(t)
|
testGeneric(filePath, prefixes.UTXO, 1)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestHashXUTXO(t *testing.T) {
|
func TestHashXUTXO(t *testing.T) {
|
||||||
filePath := "../../resources/hashx_utxo.csv"
|
filePath := fmt.Sprintf("../../testdata/%c.csv", prefixes.HashXUTXO)
|
||||||
testGeneric(filePath, prefixes.HashXUTXO, 3)(t)
|
testGeneric(filePath, prefixes.HashXUTXO, 3)(t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
56
main.go
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
@ -49,36 +50,43 @@ func main() {
|
||||||
log.Fatalln(err)
|
log.Fatalln(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
db.ReadWriteRawN(dbVal, options, "./resources/support_amount.csv", 10)
|
db.ReadWriteRawN(dbVal, options, "./testdata/support_amount.csv", 10)
|
||||||
|
|
||||||
return
|
return
|
||||||
} else if args.CmdType == server.DBCmd2 {
|
} else if args.CmdType == server.DBCmd2 {
|
||||||
var rawPrefix byte = prefixes.RepostedClaim
|
pxs := prefixes.GetPrefixes()
|
||||||
|
for _, prefix := range pxs {
|
||||||
|
//var rawPrefix byte = prefixes.ClaimExpiration
|
||||||
|
|
||||||
prefix := []byte{rawPrefix}
|
//prefix := []byte{rawPrefix}
|
||||||
columnFamily := string(prefix)
|
columnFamily := string(prefix)
|
||||||
options := &db.IterOptions{
|
options := &db.IterOptions{
|
||||||
FillCache: false,
|
FillCache: false,
|
||||||
Prefix: prefix,
|
Prefix: prefix,
|
||||||
Start: nil,
|
Start: nil,
|
||||||
Stop: nil,
|
Stop: nil,
|
||||||
IncludeStart: true,
|
IncludeStart: true,
|
||||||
IncludeStop: false,
|
IncludeStop: false,
|
||||||
IncludeKey: true,
|
IncludeKey: true,
|
||||||
IncludeValue: true,
|
IncludeValue: true,
|
||||||
RawKey: true,
|
RawKey: true,
|
||||||
RawValue: true,
|
RawValue: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
dbVal, handles, err := db.GetDBCF("/mnt/d/data/snapshot_1072108/lbry-rocksdb/", columnFamily)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalln(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
options.CfHandle = handles[1]
|
||||||
|
var n = 10
|
||||||
|
if bytes.Equal(prefix, []byte{prefixes.Undo}) || bytes.Equal(prefix, []byte{prefixes.DBState}) {
|
||||||
|
n = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
db.ReadWriteRawNCF(dbVal, options, fmt.Sprintf("./testdata/%s.csv", columnFamily), n)
|
||||||
}
|
}
|
||||||
|
|
||||||
dbVal, handles, err := db.GetDBCF("/mnt/d/data/snapshot_1072108/lbry-rocksdb/", columnFamily)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
options.CfHandle = handles[1]
|
|
||||||
|
|
||||||
db.ReadWriteRawNCF(dbVal, options, "./resources/reposted_claim_cf.csv", 10)
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
73,9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f46300102d0a03cf8317b51915dc662e9786b9d4c0c7443652ea58ea91124e2c62dfd3ab23dbd7c9446900102d0d001168ae000700102d0dffffffffffffffff00102d0a
|
|
500Internal server error Forgejo version: 9.0.2+gitea-1.22.0 |
no need to start these with N
and many of these are unused
is this really no big deal? seems like an error to me but idk rocksdb
typo: Famlies -> Families
this can be unexported
still need this?
typo
👀