I am getting intermittent errors today with this error:
failed with status '': {"error":"Unsupported chainId 'eip155:3'. Configured anchor service only supports 'eip155:100'"}
Which is really quite odd. For example, in the following code, the first 3 commits load, and the rest fail.
const stream = await TileDocument.load(ceramic, streamId);
const ids = stream.allCommitIds;
log.trace(`Found ${ids.length} commits`);
// TODO: do this with a multi-query instead
const commits: JWE[] = [];
for (let i = 0; i < ids.length; i++) {
try {
const commit = await ceramic.loadStream(ids[i]);
if (commit) {
commits.push(commit.content);
}
}
catch (e: any) {
log.error(`Cannot load commit: ${e.message}`);
}
progress?.(i / ids.length);
}
I also get the same message intermittently when writing commits. AFAICT - in one case I got an error on write, and just re-ran the same code and it worked.
As far as I know, eip155:3 is the 3box chain-agnostic DID specifier, is it not? What is eip155:100? Did I miss something important?
I’m assuming that the error you see is when loading the stream from your local Ceramic daemon.
This is an unfortunate consequence of the migration from ropsten to gnosis. Anchors done on ropsten cannot be validated post-migration to gnosis.
If you load the stream from Clay nodes though, because the stream was verified and cached in these nodes’ state store, the stream is able to load correctly without any additional verification.
There are two ways that I can think of for resolving this:
(Recommended) Start with a fresh stream on the latest Ceramic (that you’ve already upgraded to) that will use gnosis and not have issues resolving in the future in any configuration.
Downgrade your local Ceramic version to pre-gnosis, load the stream, which will cache it in your local state store, then upgrade back to the latest Ceramic.
Just like on the Clay nodes, the older anchor commit will not be reverified, and subsequent ones can be verified on gnosis. This strategy is contingent on using a persistent state store though, so you’ll have to be careful not to flush it.
We’re considering cleaning out testnet data soon so as not to leave streams in such an inconsistent state. Our recommendation would be to start afresh with new streams. This will not be an issue for mainnet in case you have any content there.
AFAIK this is connecting directly to the clay nodes.
This will not be an issue for mainnet in case you have any content there.
That is my main concern. Walking the average non-crypto person through IDX isn’t straight-forward at the best of times, so as long as long as mainnet keeps chugging along I’m A-OK.
I’ll start a fresh testnet stream & hopefully we can just ignore this.