[NOD-472] Don't fetch accepting block and tx confirmations for getBlocks (#498)

* [NOD-472] Don't fetch accepting block and tx confirmations for getBlocks

* [NOD-472] Don't fetch accepting block and tx confirmations in any block verbose result

* [NOD-472] Add stringPointerToString function
This commit is contained in:
Ori Newman 2019-11-28 13:04:03 +02:00 committed by Dan Aharoni
parent a71528fefb
commit bdc3cbceaa
4 changed files with 19 additions and 17 deletions

View File

@ -71,7 +71,7 @@ func Connect() error {
User: cfg.RPCUser,
Pass: cfg.RPCPassword,
DisableTLS: cfg.DisableTLS,
RequestTimeout: time.Second * 5,
RequestTimeout: time.Second * 60,
}
if !cfg.DisableTLS {

View File

@ -57,7 +57,6 @@ func startSync(doneChan chan struct{}) error {
if err != nil {
return err
}
log.Infof("Finished syncing past data")
// Keep the node and the API server in sync
return sync(client, doneChan)
@ -66,14 +65,17 @@ func startSync(doneChan chan struct{}) error {
// fetchInitialData downloads all data that's currently missing from
// the database.
func fetchInitialData(client *jsonrpc.Client) error {
log.Infof("Syncing past blocks")
err := syncBlocks(client)
if err != nil {
return err
}
log.Infof("Syncing past selected parent chain")
err = syncSelectedParentChain(client)
if err != nil {
return err
}
log.Infof("Finished syncing past data")
return nil
}
@ -101,6 +103,13 @@ func sync(client *jsonrpc.Client, doneChan chan struct{}) error {
}
}
func stringPointerToString(str *string) string {
if str == nil {
return "<nil>"
}
return *str
}
// syncBlocks attempts to download all DAG blocks starting with
// the bluest block, and then inserts them into the database.
func syncBlocks(client *jsonrpc.Client) error {
@ -115,6 +124,7 @@ func syncBlocks(client *jsonrpc.Client) error {
var rawBlocks []string
var verboseBlocks []btcjson.GetBlockVerboseResult
for {
log.Debugf("Calling getBlocks with start hash %v", stringPointerToString(startHash))
blocksResult, err := client.GetBlocks(true, true, startHash)
if err != nil {
return err
@ -142,6 +152,7 @@ func syncSelectedParentChain(client *jsonrpc.Client) error {
}
for {
log.Debugf("Calling getChainFromBlock with start hash %s", stringPointerToString(startHash))
chainFromBlockResult, err := client.GetChainFromBlock(false, startHash)
if err != nil {
return err

View File

@ -782,7 +782,11 @@ func newFutureError(err error) chan *response {
func receiveFuture(f chan *response) ([]byte, error) {
// Wait for a response on the returned channel.
r := <-f
return r.result, r.err
var err error
if r.err != nil {
err = errors.Wrap(r.err, "got error from response channel")
}
return r.result, err
}
// sendPost sends the passed request to the server by issuing an HTTP POST

View File

@ -275,21 +275,8 @@ func buildGetBlockVerboseResult(s *Server, block *util.Block, isVerboseTx bool)
txns := block.Transactions()
rawTxns := make([]btcjson.TxRawResult, len(txns))
for i, tx := range txns {
var acceptingBlock *daghash.Hash
var confirmations *uint64
if s.cfg.TxIndex != nil {
acceptingBlock, err = s.cfg.TxIndex.BlockThatAcceptedTx(s.cfg.DAG, tx.ID())
if err != nil {
return nil, err
}
txConfirmations, err := txConfirmationsNoLock(s, tx.ID())
if err != nil {
return nil, err
}
confirmations = &txConfirmations
}
rawTxn, err := createTxRawResult(params, tx.MsgTx(), tx.ID().String(),
&blockHeader, hash.String(), acceptingBlock, confirmations, false)
&blockHeader, hash.String(), nil, nil, false)
if err != nil {
return nil, err
}