- /dash -> First Look at Dash (Stopped at "retrieveName" Step)
- /dashmate -> First Look at Dashmate
URL: https://ajcwebdev.com/first-look-dash/
I wrote these feedbacks down while going through the tutorial and cleaned them up a bit afterwards:
- The tutorial starts with the heading
Dash Platform Overviewfollowing with a historical explanation aboutDash. I think it would make sense to split this up, e.g. by moving the aboutDashto a little section before theDash Platform Overview. This would make sure thatDashandDash Platformare not perceived as the same thing. - The image of the architectural overview of Dash Platform is very small. Reducing the outer padding surrounding the diagram, could make it a bit more readable.
- The
Setup and Configure Node Projectchapter starts without any connection to the previous one. When you come to this chapter the first thought is like: "Oh we are starting with the tutorial right now". I recommend to add (more) sentences connecting the different chapters together. Otherwise the tutorial feels like an instruction for a machine. The network will be set to testnet via the NETWORK environment variable in .env.: A link to a list & description of the available networks would be useful here.- The sentence
Because we haven’t created a wallet yet, mnemonic is set to null to indicate we want a new wallet to be generated.mentionsmnemonic, but theclient.jsscript above the sentence doesn't have any line withmnemonic, nornull. The sentencereplace null with an existing walletalso mentionsnull. Whichnull? Consider rewriting these sentences to better align with what the script shows, or change the script to includemnemonic: null. - The http://faucet.testnet.networks.dash.org/ generator and related links respond with blank pages after sending test funds - I recommend to atleast show a "Success" label or something.
skipSynchronizationBeforeHeightshould be explained. The text should answer questions like: Why is it needed? Why the specific value990000? Whats unsafe about it?LABEL(retrieveName) needs to follow some very specific rules (contested resources). Failing these rules does result in silent errors -> ergo you don't know that you failed the rules. Advice: add error handling for theLABELrules.- Sometimes you don't receive enough credits to run
topUpIdentities, so you have to wait 1 hour before you can continue with the tutorial. I recommend to change the faucet limitations in a way that prevents this from happening - e.g. allow mulitple faucet fund requests for wallets below the required currency amount. View on block explorer: https://platform-explorer.com/xyzwrong url - should behttps://testnet.platform-explorer.com/xyz- General idea: add sentences like
To learn more about "xyz" go to "Article XYZ"to the text, to lead readers to useful resources. - Why is there no cli for some of these scripts? (Or is there one and the tutorial doesn't mention it?)
- dashUniqueIdentityId -> dashpay/platform#1999 (comment)
- The Next App comes very late in the tutorial. Consider moving it before the
Data Contractsand directly show the data contract features via the next app. E.g. TheDocumentscould be used to implement some sort ofTodoApp in the tutorial. - Problem with Umlaute in the funds-generator:
http://faucet.testnet.networks.dash.org/

URL: https://ajcwebdev.com/first-look-dashmate/
pnpm install -g dashmatefailed with error "Command failed".- podman docker didn't work, Fedora is still on docker-compose v1, dashmate requires v2. Consider supporting docker-compose v1 or add a
--ignore-version-checksto dashmate, so that users atleast can give the installer a try on subpar environments. - "Setup JavaScript Project" -> Add a joiner-text e.g. "Lets now 1. take a look how you can interactive with "
- In
Mint Local tDash with Wallet Command, quick idea: source the .env file like so:bash -c 'source .env && dashmate wallet mint --config local_seed --address=$WALLET_ADDRESS 50' submitDocument.jsis not explained enough. E.g. why does it have theawait client.platform.identities.topUp(IDENTITY_ID, 100000000)line?- In general I think the tutorials should go more into details about what the copy-pasted scripts actually do. E.g. in
submitDocument.jswhats the difference between.createvs.broadcast? - What happens if
client.disconnect()is missing? Doesn't the client automatically disconnect on process exit? getDocumentsandgeDocumentis mixed up: