Skip to content

Commit ffcd97f

Browse files
daemon: Remove bp from indexer daemon (#1480)
* Remove bp from indexer daemon
1 parent 158adb9 commit ffcd97f

File tree

6 files changed

+41
-22
lines changed

6 files changed

+41
-22
lines changed

cmd/algorand-indexer/daemon.go

+1-13
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121
"github.com/algorand/indexer/conduit/pipeline"
2222
_ "github.com/algorand/indexer/conduit/plugins/exporters/postgresql"
2323
_ "github.com/algorand/indexer/conduit/plugins/importers/algod"
24-
_ "github.com/algorand/indexer/conduit/plugins/processors/blockprocessor"
2524
"github.com/algorand/indexer/config"
2625
"github.com/algorand/indexer/fetcher"
2726
"github.com/algorand/indexer/idb"
@@ -380,18 +379,7 @@ func makeConduitConfig(dCfg *daemonConfig, nextRound uint64) pipeline.Config {
380379
Config: map[string]interface{}{
381380
"netaddr": dCfg.algodAddr,
382381
"token": dCfg.algodToken,
383-
},
384-
},
385-
Processors: []pipeline.NameConfigPair{
386-
{
387-
Name: "block_evaluator",
388-
Config: map[string]interface{}{
389-
"catchpoint": dCfg.catchpoint,
390-
"data-dir": dCfg.indexerDataDir,
391-
"algod-data-dir": dCfg.algodDataDir,
392-
"algod-token": dCfg.algodToken,
393-
"algod-addr": dCfg.algodAddr,
394-
},
382+
"mode": "follower",
395383
},
396384
},
397385
Exporter: pipeline.NameConfigPair{

conduit/plugins/importers/algod/algod_importer.go

+16-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"github.com/algorand/indexer/data"
1919

2020
"github.com/algorand/go-algorand-sdk/v2/client/v2/algod"
21+
"github.com/algorand/go-algorand-sdk/v2/client/v2/common"
2122
"github.com/algorand/go-algorand-sdk/v2/client/v2/common/models"
2223
"github.com/algorand/go-algorand-sdk/v2/encoding/json"
2324
"github.com/algorand/go-algorand-sdk/v2/encoding/msgpack"
@@ -155,6 +156,20 @@ func (algodImp *algodImporter) Close() error {
155156
return nil
156157
}
157158

159+
func (algodImp *algodImporter) getDelta(rnd uint64) (sdk.LedgerStateDelta, error) {
160+
var delta sdk.LedgerStateDelta
161+
params := struct {
162+
Format string `url:"format,omitempty"`
163+
}{Format: "msgp"}
164+
bytes, err := (*common.Client)(algodImp.aclient).GetRaw(algodImp.ctx, fmt.Sprintf("/v2/deltas/%d", rnd), params, nil)
165+
if err != nil {
166+
return delta, err
167+
}
168+
169+
err = msgpack.Decode(bytes, &delta)
170+
return delta, err
171+
}
172+
158173
func (algodImp *algodImporter) GetBlock(rnd uint64) (data.BlockData, error) {
159174
var blockbytes []byte
160175
var err error
@@ -195,7 +210,7 @@ func (algodImp *algodImporter) GetBlock(rnd uint64) (data.BlockData, error) {
195210
// else converted over
196211
// Round 0 has no delta associated with it
197212
if rnd != 0 {
198-
delta, err := algodImp.aclient.GetLedgerStateDelta(rnd).Do(algodImp.ctx)
213+
delta, err := algodImp.getDelta(rnd)
199214
if err != nil {
200215
algodImp.logger.Errorf(
201216
"r=%d error getting delta %d", r, rnd)

e2e_tests/src/e2e_indexer/e2elive.py

+15-3
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,18 @@ def main():
124124
os.path.join(tempdir, "net", "Primary", "*", "*.block.sqlite")
125125
)
126126
lastblock = countblocks(blockfiles[0])
127+
# Reset the secondary node, and enable follow mode.
128+
# This is what conduit will connect to for data access.
129+
for root, dirs, files in os.walk(os.path.join(tempnet, 'Node', 'tbd-v1')):
130+
for f in files:
131+
if ".sqlite" in f:
132+
os.remove(os.path.join(root, f))
133+
cf = {}
134+
with open(os.path.join(tempnet, "Node", "config.json"), "r") as config_file:
135+
cf = json.load(config_file)
136+
cf['EnableFollowMode'] = True
137+
with open(os.path.join(tempnet, "Node", "config.json"), "w") as config_file:
138+
config_file.write(json.dumps(cf))
127139
try:
128140
xrun(["goal", "network", "start", "-r", tempnet])
129141
except Exception:
@@ -146,7 +158,7 @@ def main():
146158
atexitrun(["goal", "network", "stop", "-r", tempnet])
147159

148160
psqlstring = ensure_test_db(args.connection_string, args.keep_temps)
149-
algoddir = os.path.join(tempnet, "Primary")
161+
algoddir = os.path.join(tempnet, "Node")
150162
aiport = args.indexer_port or random.randint(4000, 30000)
151163
indexerdir = os.path.join(tempdir, "indexer_data_dir")
152164
cmd = [
@@ -172,15 +184,15 @@ def main():
172184
indexerurl = "http://localhost:{}/".format(aiport)
173185
healthurl = indexerurl + "health"
174186
for attempt in range(20):
175-
(ok, json) = tryhealthurl(healthurl, args.verbose, waitforround=lastblock)
187+
(ok, healthJson) = tryhealthurl(healthurl, args.verbose, waitforround=lastblock)
176188
if ok:
177189
logger.debug("health round={} OK".format(lastblock))
178190
break
179191
time.sleep(0.5)
180192
if not ok:
181193
logger.error(
182194
"could not get indexer health, or did not reach round={}\n{}".format(
183-
lastblock, json
195+
lastblock, healthJson
184196
)
185197
)
186198
sys.stderr.write(indexerout.dump())

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ replace github.com/algorand/go-algorand => ./third_party/go-algorand
77
require (
88
github.com/algorand/avm-abi v0.2.0
99
github.com/algorand/go-algorand v0.0.0-20220211161928-53b157beb10f
10-
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230216185416-22ef3b66c617
10+
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230228201805-5b8c99b1412c
1111
github.com/algorand/go-codec/codec v1.1.8
1212
github.com/algorand/go-deadlock v0.2.2
1313
github.com/algorand/oapi-codegen v1.12.0-algorand.0

go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230209164439-140b997ed9ee h1:OGE
9292
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230209164439-140b997ed9ee/go.mod h1:Nt3EHpP8AznLs0/EFfhr0/xsVf5ucnvjNeRygGgbUzM=
9393
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230216185416-22ef3b66c617 h1:IOqgNBpxSk23ixJzysAYqRYz04rAE2+d1DJI1sD+z8M=
9494
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230216185416-22ef3b66c617/go.mod h1:Nt3EHpP8AznLs0/EFfhr0/xsVf5ucnvjNeRygGgbUzM=
95+
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230228201805-5b8c99b1412c h1:KAX6gb3+DLCTBcVhjDtuhcdbCeKnwIYKdj5Dv2JA/nI=
96+
github.com/algorand/go-algorand-sdk/v2 v2.0.0-20230228201805-5b8c99b1412c/go.mod h1:Nt3EHpP8AznLs0/EFfhr0/xsVf5ucnvjNeRygGgbUzM=
97+
github.com/algorand/go-algorand-sdk/v2 v2.0.0 h1:hfi+YrzcaH20mrjdIQYOPFKPlJ/ULq9KLhLG9I6LJEY=
98+
github.com/algorand/go-algorand-sdk/v2 v2.0.0/go.mod h1:Nt3EHpP8AznLs0/EFfhr0/xsVf5ucnvjNeRygGgbUzM=
9599
github.com/algorand/go-codec v1.1.8 h1:XDSreeeZY8gMst6Edz4RBkl08/DGMJOeHYkoXL2B7wI=
96100
github.com/algorand/go-codec v1.1.8/go.mod h1:XhzVs6VVyWMLu6cApb9/192gBjGRVGm5cX5j203Heg4=
97101
github.com/algorand/go-codec/codec v1.1.8 h1:lsFuhcOH2LiEhpBH3BVUUkdevVmwCRyvb7FCAAPeY6U=

util/test/mock_algod.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import (
99

1010
"github.com/algorand/go-algorand-sdk/v2/client/v2/algod"
1111
"github.com/algorand/go-algorand-sdk/v2/client/v2/common/models"
12+
"github.com/algorand/go-algorand-sdk/v2/encoding/json"
1213
"github.com/algorand/go-algorand-sdk/v2/encoding/msgpack"
1314
"github.com/algorand/go-algorand-sdk/v2/types"
14-
"github.com/algorand/go-algorand/protocol"
1515
)
1616

1717
// AlgodHandler is used to handle http requests to a mock algod server
@@ -67,7 +67,7 @@ func MakeGenesisResponder(genesis types.Genesis) func(reqPath string, w http.Res
6767
return func(reqPath string, w http.ResponseWriter) bool {
6868
if strings.Contains(reqPath, "/genesis") {
6969
w.WriteHeader(http.StatusOK)
70-
blockbytes := protocol.EncodeJSON(&genesis)
70+
blockbytes := json.Encode(&genesis)
7171
_, _ = w.Write(blockbytes)
7272
return true
7373
}
@@ -86,7 +86,7 @@ func BlockAfterResponder(reqPath string, w http.ResponseWriter) bool {
8686
if strings.Contains(reqPath, "/wait-for-block-after") {
8787
w.WriteHeader(http.StatusOK)
8888
nStatus := models.NodeStatus{}
89-
_, _ = w.Write(protocol.EncodeJSON(nStatus))
89+
_, _ = w.Write(json.Encode(nStatus))
9090
return true
9191
}
9292
return false
@@ -97,7 +97,7 @@ func LedgerStateDeltaResponder(reqPath string, w http.ResponseWriter) bool {
9797
if strings.Contains(reqPath, "v2/deltas/") {
9898
w.WriteHeader(http.StatusOK)
9999
delta := types.LedgerStateDelta{}
100-
_, _ = w.Write(protocol.EncodeJSON(delta))
100+
_, _ = w.Write(msgpack.Encode(delta))
101101
return true
102102
}
103103
return false

0 commit comments

Comments
 (0)