Repository navigation
Reject endpoints that are not http or https - #999
Merged
Merged
Conversation
alexgex
approved these changes
Nov 11, 2026
badrogger
approved these changes
Nov 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
skale.py 8 (skalenetwork/skale.py#697) supports only http and https endpoints:
get_providerraisesWrong endpoint option. Supported endpoint schemes: http/httpsfor any other scheme. skale-admin, transaction-manager and bounty-agent build their web3 provider from the node'sendpointthrough skale.py, so aws://orwss://ENDPOINTmakes them fail with that error. node-cli still accepted such an endpoint, because skale_core declaresendpointasAnyUrland node-cli had no scheme check:skale node init,update,restore,turn-onandskale passive-node initandupdatewrote it tonode.tomland ran the operation that brings the containers up.Change
validate_and_save_node_settingsexits withEndpoint must be an http or https URL(exit code 1) when the endpoint scheme is not http or https, beforenode.tomlis written and before any operation runs. Every command that saves node settings goes through it: the six commands above and the fair commands.tests/utils/settings_test.pychecks thatws://andwss://endpoints are rejected with this message and leavenode.tomlunchanged. It fails on develop.Tested locally
ws://orwss://endpoint exits 1 with the message, the operation is not called andnode.tomlis not written. On develop each of them exits 0, writes the ws/wss endpoint tonode.tomland calls the operation.http://andhttps://endpoints exit 0, writenode.tomland call the operation, as on develop.update,turn-onorpassive-node updateleaves every file under~/.skaleunchanged (CLI logs excluded).save_internal_settingsstill runs before the check, as on develop, so a rejectedinit,restoreorpassive-node initon a fresh host createsinternal.toml(the node stays not inited, so init can be run again), and a rejectedupdate --pull-config Xwritespull_config_for_schain = "X"tointernal.toml.scripts/build.shand run in an Ubuntu 24.04 container: with awss://endpoint,skale node update ENV --yes --unsafeandskale node turn-on ENV --yeson an inited node exit 1 with the message and change no file under~/.skale(CLI logs excluded);skale node init ENVandskale passive-node init ENVon a fresh host exit 1 with the message and do not createnode.toml.validate_and_save_node_settingswithNodeType.FAIR, active and passive, rejectsws://andwss://the same way and acceptshttp://andhttps://.Release notes: node-cli rejects an
ENDPOINTthat is not http or https, such asws://orwss://. Nodes with a WebSocket ETH endpoint must switch to an http or https endpoint before updating, since skale.py 8 no longer supports WebSocket endpoints.Part of skalenetwork/skale-node#891