Hi Amin,
I’ve responded to your issue on Github with some tips for compiling Syrius on Linux.
If you’re interested in developing on Windows, I’ve made a post here.
Hope it helps!
This whole time, it was Wakelock’s lack of Linux support that was causing the error. We can either patch it out for Linux or find an alternate solution.
Now that we’ve figured out how to setup the development environment (thank you @sol for breaking it down), we can work on some of the items on the list. I figure we would need to fork the repository in order to setup a team of contributors.
We could also break down the list in work items under the GitHub repository and use DoWork for bounties?
Thanks to @sol straightforward explanation, I could run Syrius on Ubuntu. It would be nice to have a release of Syrius on Snapd. I hope the team considers it.
dynamic_netId and add_message_field require you to manually supply the Zenon library files in the build output directory. Some info about this can be found here.
linux_poc has an updated build process for Windows and Linux, automatically sourcing those ^ libraries and dropping them in the build output directory. I’m still working on the MacOS build process with @0x3639.
dynamic_netId allows you to switch between any Zenon network automatically, depending on the node you’ve connected to.
If you want to try the netId branch, you may use these nodes:
netId 1 == wss://node.zenon.fun:35998
netId 321 == ws://node.zenon.fun:36998
DM me your 321 test address and I’ll fund you with some tZNN/tQSR
add_message_field updates the transaction widget to allow users to submit optional messages with their tx.
I’ve tested all these and am satisfied with the results, but I’d like community feedback in case I made a mistake.
After a brief period of time, I’ll submit each of these as a PR to the official git repo.
Dynamic netid is cool, but it would be also very helpful to be able to manually set it. I would make a separate Settings card with all options (Add/edit netid and dynamic netid).
Is there a reason for a Client-Node netId mismatch scenario? I don’t think this would really work for anything…
Example: Syrius connects to node with netId 1, but I’ve statically set netId 321 in Syrius, I won’t be able to interact with either netId 321 or netId 1. Syrius will still be able to see netId 1 chain data.
Zenon uses ChainIdentifier and netId, while Ethereum uses chainId and networkId. You can find a list with chainId information here.
chainId is used to prevent replay attacks and neworkId is used in the p2p communication and you usually want both to be the same value and different from other networks (localnet/devnet/testnet/etc).
We definitely don’t want Client-Node chainId mismatch (because the Client will sign tx only valid for that specific chainId when sending them for broadcast to the node that is connected to) and netId is really used only by the node to connect to other nodes from the p2p network and we should just inform the user.
It’s a bit misleading and I think this is a confusion that we should address in the next update. More info on this over here.
@sol sending transactions with an optional message seems to work.
The UI doesn’t enforce any limitation on the maximum data length. So when entering a very large message the the API creates an exception based on two conditions.
"JSON-RPC error -32000: account-block data field is too big"
When sending an account-block with data larger than 16384 characters
"JSON-RPC error -32000: forbidden parameter"
When the account doesn’t have the required plasma.
// MaxDataLength defines limit of account-block data to 16Kb
MaxDataLength = 1024 * 16
Would be nice if the UI prevents large messages. Maybe even limiting the max allowed data size of 16Kb?