Closed nasbasarin closed 10 months ago
Alpha protocol is actually not a protocol, but sort of an alias for "the next version". In other words, it's a "development branch" in the Tezos repo. So, on the TzKT side it's practically impossible to have a protocol handler for alpha, because it changes every day, with no announcements, with no documentation, with no change log. And without a protocol handler TzKT is simply unable to index the protocol.
However, you can specify a fallback protocol in the settings, that will make TzKT use the hadler of that fallback protocol for all unknown protocols, including alpha. But keep in mind that stability of the indexer and correctness of indexed data are not guaranteed in case of using a fallback protocol.
i have included the fallback protocol in the settings but still getting the error and i can't see the appsettings.json file is updated in the tzkt-sync docker container. is there any way to verify it? "Protocols": { "Diagnostics": false, "Validation": true, "Fallback": "ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK" },
tzkt@55935350b5ee:/app$ cat appsettings.json { "Protocols": { "Diagnostics": false, "Validation": true, "Fallback": null },
Fallback is what TzKT will use for processing unknown protocols. You cannot use alpha as a fallback, because alpha is an unknown protocol :) Use one of supported protocols, for instance PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf
.
If you make changes in the appsettings.json, you have to rebuild docker images. As an alternative to appsettings.json, you can simply pass it via env vars (env vars override appsettings.json): just add Protocols__Fallback=Pt...
in the docker-compose.yml.
there is another error after resolving unknown protocol --> fail: Tzkt.Sync.Services.Observer[0] Failed to apply updates Tzkt.Sync.ValidationException: Validation exception - invalid block reward at Tzkt.Sync.Protocols.Proto17.Validator.ValidateBlockMetadata(JsonElement metadata) in /app/Tzkt.Sync/Protocols/Handlers/Proto17/Validation/Validator.cs:line 107 at Tzkt.Sync.Protocols.Proto17.Validator.ValidateBlock(JsonElement block) in /app/Tzkt.Sync/Protocols/Handlers/Proto17/Validation/Validator.cs:line 29
That error caused by breaking changes in the new protocol (comparing to Nairobi, that you use as a fallback), so the indexer stops indexing, because it simply doesn't know how to index that.
So, in this case you can do nothing, except for adding support of the new protocol to the indexer :)
adding support of the new protocol to the indexer means?
Adding support of a new protocol means writing a code that will handle new protocol behavior
i was creating a sandboxed private network using Tezos rolllup and therefore, used Alpha as the protocol. If I also want to use an explorer, is there any other other protocol that I can use or any explorer that I can use?
I also want to use an explorer
Just for your information, this repo is not about an explorer, but a blockchain indexer with API.
is there any other other protocol that I can use
At the moment TzKT supports the following protocols, so you can run your sandbox on any of them.
or any explorer that I can use?
As far as I know, there are no indexers supporting alpha (due to reasons I described above).
to use these protocols i couldn't find supported octez binaries for most of the protocols in the tezos development environment after the setup.
I see. Not sure if I can help you with that, because it is out of TzKT's scope...
Thanks for the help till now :)
Alright, since your question has been answered, I'm closing this issue. Feel free to open a new one if you have any other issues
I was trying to setup tzkt explorer for my tezos sandbox node. but it says protocol not supported.
fail: Tzkt.Sync.Services.Observer[0] Failed to apply updates System.NotImplementedException: Protocol 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK' is not supported at Tzkt.Sync.TezosProtocols.GetProtocolHandler(IServiceProvider services, Int32 level, String protocol) in /app/Tzkt.Sync/Protocols/TezosProtocols.cs:line 55 at Tzkt.Sync.ProtocolHandler.CommitBlock(Int32 head) in /app/Tzkt.Sync/Protocols/ProtocolHandler.cs:line 84 at Tzkt.Sync.ProtocolHandler.CommitBlock(Int32 head) in /app/Tzkt.Sync/Protocols/ProtocolHandler.cs:line 130 at Tzkt.Sync.Services.Observer.ApplyUpdatesAsync(CancellationToken cancelToken) in /app/Tzkt.Sync/Services/Observer/Observer.cs:line 183 at Tzkt.Sync.Services.Observer.ExecuteAsync(CancellationToken cancelToken) in /app/Tzkt.Sync/Services/Observer/Observer.cs:line 66
can't i use alpha protocol with tzkt ?