ವೇವ್ಸ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ವಿಕೇಂದ್ರೀಕೃತ ಅಂಗ ಪ್ರೋಗ್ರಾಂ

ವೇವ್ಸ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಅಂಗಸಂಸ್ಥೆ ಪ್ರೋಗ್ರಾಂ, ಬೆಟೆಕ್ಸ್ ತಂಡದಿಂದ ವೇವ್ಸ್ ಲ್ಯಾಬ್ಸ್ ಅನುದಾನದ ಭಾಗವಾಗಿ ಜಾರಿಗೊಳಿಸಲಾಗಿದೆ.

ಪೋಸ್ಟ್ ಜಾಹೀರಾತು ಅಲ್ಲ! ಪ್ರೋಗ್ರಾಂ ಮುಕ್ತ ಮೂಲವಾಗಿದೆ, ಅದರ ಬಳಕೆ ಮತ್ತು ವಿತರಣೆ ಉಚಿತವಾಗಿದೆ. ಪ್ರೋಗ್ರಾಂನ ಬಳಕೆಯು dApp ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ವಿಕೇಂದ್ರೀಕರಣವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ, ಇದು ಪ್ರತಿ ಇಂಟರ್ನೆಟ್ ಬಳಕೆದಾರರಿಗೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ.

ವೇವ್ಸ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ವಿಕೇಂದ್ರೀಕೃತ ಅಂಗ ಪ್ರೋಗ್ರಾಂ

ಅಂಗಸಂಸ್ಥೆ ಕಾರ್ಯಕ್ರಮಗಳಿಗಾಗಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾದ dApp ತಮ್ಮ ಕಾರ್ಯಚಟುವಟಿಕೆಗಳ ಭಾಗವಾಗಿ ಅಂಗಸಂಸ್ಥೆಯನ್ನು ಒಳಗೊಂಡಿರುವ ಯೋಜನೆಗಳಿಗೆ ಟೆಂಪ್ಲೇಟ್ ಆಗಿದೆ. ಕೋಡ್ ಅನ್ನು ನಕಲು ಮಾಡಲು ಟೆಂಪ್ಲೇಟ್ ಆಗಿ, ಗ್ರಂಥಾಲಯವಾಗಿ ಅಥವಾ ತಾಂತ್ರಿಕ ಅನುಷ್ಠಾನಕ್ಕಾಗಿ ಕಲ್ಪನೆಗಳ ಗುಂಪಾಗಿ ಬಳಸಬಹುದು.

ಕ್ರಿಯಾತ್ಮಕತೆಯ ವಿಷಯದಲ್ಲಿ, ಇದು ರೆಫರರ್‌ನೊಂದಿಗೆ ನೋಂದಣಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ನಿಯಮಿತ ಅಂಗಸಂಸ್ಥೆ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ, ಉಲ್ಲೇಖಗಳಿಗಾಗಿ ಬಹು-ಹಂತದ ಸಂಚಯ ಮತ್ತು ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ನೋಂದಾಯಿಸಲು ಪ್ರೇರಣೆ (ಕ್ಯಾಶ್‌ಬ್ಯಾಕ್). ಸಿಸ್ಟಮ್ "ಶುದ್ಧ" dApp ಆಗಿದೆ, ಅಂದರೆ, ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ತನ್ನದೇ ಆದ ಬ್ಯಾಕೆಂಡ್, ಡೇಟಾಬೇಸ್ ಇತ್ಯಾದಿಗಳನ್ನು ಹೊಂದಿರದೆ ನೇರವಾಗಿ ಬ್ಲಾಕ್‌ಚೈನ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ.

ಅನೇಕ ಇತರ ಯೋಜನೆಗಳಲ್ಲಿ ಸಹ ಉಪಯುಕ್ತವಾದ ತಂತ್ರಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ:

  • ತಕ್ಷಣದ ಮರುಪಾವತಿಯೊಂದಿಗೆ ಸ್ಮಾರ್ಟ್ ಖಾತೆಯನ್ನು ಸಾಲಕ್ಕೆ ಕರೆ ಮಾಡುವುದು (ಕರೆಯ ಸಮಯದಲ್ಲಿ ಕರೆಗೆ ಪಾವತಿಸಲು ಖಾತೆಯಲ್ಲಿ ಯಾವುದೇ ಟೋಕನ್‌ಗಳಿಲ್ಲ, ಆದರೆ ಕರೆಯ ಪರಿಣಾಮವಾಗಿ ಅವು ಅಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ).
  • PoW-captcha - ಸ್ಮಾರ್ಟ್ ಖಾತೆ ಕಾರ್ಯಗಳಿಗೆ ಹೆಚ್ಚಿನ ಆವರ್ತನ ಸ್ವಯಂಚಾಲಿತ ಕರೆಗಳ ವಿರುದ್ಧ ರಕ್ಷಣೆ - ಕ್ಯಾಪ್ಚಾಗೆ ಹೋಲುತ್ತದೆ, ಆದರೆ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳ ಬಳಕೆಯ ಪುರಾವೆಯ ಮೂಲಕ.
  • ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾ ಕೀಗಳಿಗಾಗಿ ಪ್ರಶ್ನೆ.

ಅಪ್ಲಿಕೇಶನ್ ಒಳಗೊಂಡಿದೆ:

  • ride4dapps ಭಾಷೆಯಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಖಾತೆ ಕೋಡ್ (ಯೋಜನೆಯಂತೆ, ಮುಖ್ಯ ಸ್ಮಾರ್ಟ್ ಖಾತೆಗೆ ವಿಲೀನಗೊಳಿಸಲಾಗಿದೆ, ಇದಕ್ಕಾಗಿ ಅಂಗ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗಿದೆ);
  • ವೇವ್ಸ್ ನೋಡ್ ರೆಸ್ಟ್ API ಮೇಲೆ ಅಮೂರ್ತತೆಯ ಮಟ್ಟವನ್ನು ಅಳವಡಿಸುವ js ಹೊದಿಕೆ;
  • vuejs ಫ್ರೇಮ್‌ವರ್ಕ್‌ನಲ್ಲಿನ ಕೋಡ್, ಇದು ಲೈಬ್ರರಿ ಮತ್ತು ರೈಡ್ ಕೋಡ್ ಅನ್ನು ಬಳಸುವ ಉದಾಹರಣೆಯಾಗಿದೆ.

ಪಟ್ಟಿ ಮಾಡಲಾದ ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಾವು ವಿವರಿಸೋಣ.

ತಕ್ಷಣದ ಮರುಪಾವತಿಯೊಂದಿಗೆ ಸಾಲಕ್ಕಾಗಿ ಸ್ಮಾರ್ಟ್ ಖಾತೆಗೆ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ

ಕರೆ ಇನ್ವೋಕ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ ವ್ಯವಹಾರವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಖಾತೆಯಿಂದ ಶುಲ್ಕವನ್ನು ಪಾವತಿಸುವ ಅಗತ್ಯವಿದೆ. ಅವರ ಖಾತೆಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಪ್ರಮಾಣದ ವೇವ್ಸ್ ಟೋಕನ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಬ್ಲಾಕ್‌ಚೈನ್ ಗೀಕ್‌ಗಳಿಗಾಗಿ ನೀವು ಯೋಜನೆಯನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ ಇದು ಸಮಸ್ಯೆಯಲ್ಲ, ಆದರೆ ಉತ್ಪನ್ನವು ಸಾಮಾನ್ಯ ಜನರ ಬಳಕೆಗೆ ಗುರಿಯಾಗಿದ್ದರೆ, ಇದು ಗಂಭೀರ ಸಮಸ್ಯೆಯಾಗುತ್ತದೆ. ಎಲ್ಲಾ ನಂತರ, ಬಳಕೆದಾರನು WAVES ಟೋಕನ್ಗಳನ್ನು (ಅಥವಾ ವಹಿವಾಟುಗಳಿಗೆ ಪಾವತಿಸಲು ಬಳಸಬಹುದಾದ ಮತ್ತೊಂದು ಸೂಕ್ತವಾದ ಸ್ವತ್ತು) ಖರೀದಿಸಲು ಕಾಳಜಿ ವಹಿಸಬೇಕು, ಇದು ಯೋಜನೆಗೆ ಪ್ರವೇಶಿಸಲು ಈಗಾಗಲೇ ಸಾಕಷ್ಟು ತಡೆಗೋಡೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ನಮ್ಮ ಸಿಸ್ಟಮ್‌ನಿಂದ ದ್ರವ ಸ್ವತ್ತನ್ನು ಪಂಪ್ ಮಾಡಲು ಸ್ವಯಂಚಾಲಿತ ವ್ಯವಸ್ಥೆಗಳನ್ನು ರಚಿಸಿದಾಗ ವಹಿವಾಟುಗಳಿಗೆ ಪಾವತಿಸಲು ಮತ್ತು ಅವರ ದುರುಪಯೋಗದ ಅಪಾಯವನ್ನು ಎದುರಿಸಲು ಸಾಧ್ಯವಾಗುವ ಬಳಕೆದಾರರಿಗೆ ನಾವು ಆಸ್ತಿಯನ್ನು ವಿತರಿಸಬಹುದು.

ಇನ್ವೊಕ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು "ಸ್ವೀಕರಿಸುವವರ ವೆಚ್ಚದಲ್ಲಿ" (ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದ ಸ್ಮಾರ್ಟ್ ಖಾತೆ) ಎಂದು ಕರೆಯಲು ಸಾಧ್ಯವಾದರೆ ಅದು ತುಂಬಾ ಅನುಕೂಲಕರವಾಗಿರುತ್ತದೆ ಮತ್ತು ಅಂತಹ ಸಾಧ್ಯತೆಯು ಸ್ಪಷ್ಟವಾಗಿಲ್ಲದಿದ್ದರೂ ಸಹ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.

ಇನ್ವೋಕ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಒಳಗೆ ನೀವು ಕರೆ ಮಾಡುವವರ ವಿಳಾಸಕ್ಕೆ ಸ್ಕ್ರಿಪ್ಟ್ ಟ್ರಾನ್ಸ್‌ಫರ್ ಮಾಡಿದರೆ, ಅದು ಖರ್ಚು ಮಾಡಿದ ಶುಲ್ಕ ಟೋಕನ್‌ಗಳನ್ನು ಸರಿದೂಗಿಸುತ್ತದೆ, ನಂತರ ಕರೆ ಮಾಡುವ ಸಮಯದಲ್ಲಿ ಕರೆ ಮಾಡುವ ಖಾತೆಯಲ್ಲಿ ಯಾವುದೇ ಸ್ವತ್ತುಗಳಿಲ್ಲದಿದ್ದರೂ ಸಹ ಅಂತಹ ಕರೆ ಯಶಸ್ವಿಯಾಗುತ್ತದೆ. ಇದು ಸಾಧ್ಯ ಏಕೆಂದರೆ ಸಾಕಷ್ಟು ಟೋಕನ್‌ಗಳ ಚೆಕ್ ಅನ್ನು ವಹಿವಾಟು ಕರೆದ ನಂತರ ಮಾಡಲಾಗುವುದು, ಬದಲಿಗೆ ಅದರ ಮುಂಚೆಯೇ, ವಹಿವಾಟುಗಳನ್ನು ತಕ್ಷಣದ ಮರುಪಾವತಿಗೆ ಒಳಪಟ್ಟು ಕ್ರೆಡಿಟ್‌ನಲ್ಲಿ ಮಾಡಬಹುದು.

ScriptTransfer(i.caller, i.fee, unit)

ಕೆಳಗಿನ ಕೋಡ್ ಸ್ಮಾರ್ಟ್ ಖಾತೆಯ ಹಣವನ್ನು ಬಳಸಿಕೊಂಡು ಖರ್ಚು ಮಾಡಿದ ಶುಲ್ಕವನ್ನು ಮರುಪಾವತಿ ಮಾಡುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯದ ದುರುಪಯೋಗದ ವಿರುದ್ಧ ರಕ್ಷಿಸಲು, ಕರೆ ಮಾಡುವವರು ಅಗತ್ಯವಿರುವ ಆಸ್ತಿಯಲ್ಲಿ ಮತ್ತು ಸಮಂಜಸವಾದ ಮಿತಿಗಳಲ್ಲಿ ಶುಲ್ಕವನ್ನು ಖರ್ಚು ಮಾಡುತ್ತಾರೆಯೇ ಎಂಬ ಚೆಕ್ ಅನ್ನು ಬಳಸುವುದು ಅವಶ್ಯಕ:

func checkFee(i:Invocation) = {
if i.fee > maxFee then throw(“unreasonable large fee”) else
if i.feeAssetId != unit then throw(“fee must be in WAVES”) else true
}

ಅಲ್ಲದೆ, ದುರುದ್ದೇಶಪೂರಿತ ಮತ್ತು ಪ್ರಜ್ಞಾಶೂನ್ಯ ನಿಧಿಯ ತ್ಯಾಜ್ಯದಿಂದ ರಕ್ಷಿಸಲು, ಸ್ವಯಂಚಾಲಿತ ಕರೆ ರಕ್ಷಣೆ (PoW-captcha) ಅಗತ್ಯವಿದೆ.

PoW-ಕ್ಯಾಪ್ಚಾ

ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ ಕ್ಯಾಪ್ಚಾದ ಕಲ್ಪನೆಯು ಹೊಸದಲ್ಲ ಮತ್ತು ವೇವ್ಸ್ ಆಧಾರದ ಮೇಲೆ ಅಳವಡಿಸಲಾಗಿರುವ ವಿವಿಧ ಯೋಜನೆಗಳಲ್ಲಿ ಈಗಾಗಲೇ ಅಳವಡಿಸಲಾಗಿದೆ. ನಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು, ಕರೆ ಮಾಡುವವರು ತನ್ನದೇ ಆದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸಹ ಖರ್ಚು ಮಾಡಬೇಕು, ಇದು ಸಂಪನ್ಮೂಲ ಸವಕಳಿ ದಾಳಿಯನ್ನು ಸಾಕಷ್ಟು ದುಬಾರಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ. ವಹಿವಾಟಿನ ಕಳುಹಿಸುವವರು PoW ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಿದ್ದಾರೆ ಎಂಬ ಅತ್ಯಂತ ಸುಲಭ ಮತ್ತು ಕಡಿಮೆ-ವೆಚ್ಚದ ಮೌಲ್ಯೀಕರಣಕ್ಕಾಗಿ, ವಹಿವಾಟಿನ ಐಡಿ ಪರಿಶೀಲನೆ ಇದೆ:

ತೆಗೆದುಕೊಂಡರೆ(toBase58String(i.transactionId), 3) != “123” ನಂತರ ಎಸೆಯಿರಿ (“ಕೆಲಸದ ಪುರಾವೆ”) ಬೇರೆ

ವಹಿವಾಟನ್ನು ಕೈಗೊಳ್ಳಲು, ಕರೆ ಮಾಡುವವರು ಅಂತಹ ನಿಯತಾಂಕಗಳನ್ನು ಆರಿಸಬೇಕು ಇದರಿಂದ ಅದರ ಬೇಸ್ 58 ಕೋಡ್ (ಐಡಿ) 123 ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಇದು ಸರಾಸರಿ ಒಂದೆರಡು ಹತ್ತಾರು ಸೆಕೆಂಡುಗಳ ಪ್ರೊಸೆಸರ್ ಸಮಯಕ್ಕೆ ಅನುರೂಪವಾಗಿದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ನಮ್ಮ ಕಾರ್ಯಕ್ಕೆ ಸಮಂಜಸವಾಗಿದೆ. ಸರಳವಾದ ಅಥವಾ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ PoW ಅಗತ್ಯವಿದ್ದರೆ, ನಂತರ ಕೆಲಸವನ್ನು ಸುಲಭವಾಗಿ ಸ್ಪಷ್ಟ ರೀತಿಯಲ್ಲಿ ಮಾರ್ಪಡಿಸಬಹುದು.

ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾ ಕೀಗಳಿಗಾಗಿ ಪ್ರಶ್ನೆ

ಬ್ಲಾಕ್‌ಚೈನ್ ಅನ್ನು ಡೇಟಾಬೇಸ್ ಆಗಿ ಬಳಸಲು, ಟೆಂಪ್ಲೇಟ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಕೀ-ವಾಲ್ ಆಗಿ ಪ್ರಶ್ನಿಸಲು API ಪರಿಕರಗಳನ್ನು ಹೊಂದಿರುವುದು ಅತ್ಯಗತ್ಯ. ಅಂತಹ ಟೂಲ್ಕಿಟ್ ಜುಲೈ 2019 ರ ಆರಂಭದಲ್ಲಿ ಪ್ಯಾರಾಮೀಟರ್ ರೂಪದಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಿತು ?ಪಂದ್ಯಗಳನ್ನು REST API ವಿನಂತಿಯಲ್ಲಿ /ವಿಳಾಸಗಳು/ಡೇಟಾ?matches=regexp. ಈಗ, ನಾವು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಕೀಗಳನ್ನು ಪಡೆಯಬೇಕಾದರೆ ಮತ್ತು ಎಲ್ಲಾ ಕೀಗಳನ್ನು ಒಂದೇ ಬಾರಿಗೆ ಪಡೆಯಬೇಕಾದರೆ, ಆದರೆ ಕೆಲವು ಗುಂಪುಗಳು ಮಾತ್ರ, ನಂತರ ನಾವು ಕೀ ಹೆಸರಿನ ಮೂಲಕ ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಈ ಯೋಜನೆಯಲ್ಲಿ, ವಾಪಸಾತಿ ವಹಿವಾಟುಗಳನ್ನು ಎನ್ಕೋಡ್ ಮಾಡಲಾಗಿದೆ

withdraw_${userAddress}_${txid}

ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ವಿಳಾಸಕ್ಕೆ ಹಣವನ್ನು ಹಿಂಪಡೆಯಲು ವಹಿವಾಟುಗಳ ಪಟ್ಟಿಯನ್ನು ಪಡೆಯಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ:

?matches=withdraw_${userAddress}_.*

ಈಗ ಸಿದ್ಧಪಡಿಸಿದ ಪರಿಹಾರದ ಘಟಕಗಳನ್ನು ನೋಡೋಣ.

Vuejs ಕೋಡ್

ಕೋಡ್ ನಿಜವಾದ ಪ್ರಾಜೆಕ್ಟ್‌ಗೆ ಹತ್ತಿರವಿರುವ ಕೆಲಸ ಮಾಡುವ ಡೆಮೊ ಆಗಿದೆ. ಇದು Waves Keeper ಮೂಲಕ ಲಾಗಿನ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು affiliate.js ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಅದರೊಂದಿಗೆ ಇದು ಬಳಕೆದಾರರನ್ನು ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ನೋಂದಾಯಿಸುತ್ತದೆ, ವಹಿವಾಟು ಡೇಟಾವನ್ನು ಪ್ರಶ್ನಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಖಾತೆಗೆ ಗಳಿಸಿದ ಹಣವನ್ನು ಹಿಂಪಡೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

ವೇವ್ಸ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ವಿಕೇಂದ್ರೀಕೃತ ಅಂಗ ಪ್ರೋಗ್ರಾಂ

RIDE ಗಾಗಿ ಕೋಡ್

ರಿಜಿಸ್ಟರ್, ಫಂಡ್ ಮತ್ತು ಹಿಂಪಡೆಯುವ ಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.

ರಿಜಿಸ್ಟರ್ ಕಾರ್ಯವು ಸಿಸ್ಟಂನಲ್ಲಿ ಬಳಕೆದಾರರನ್ನು ನೋಂದಾಯಿಸುತ್ತದೆ. ಇದು ಎರಡು ಪ್ಯಾರಾಮೀಟರ್‌ಗಳನ್ನು ಹೊಂದಿದೆ: ರೆಫರರ್ (ಉಲ್ಲೇಖಿಸುವವರ ವಿಳಾಸ) ಮತ್ತು ಉಪ್ಪಿನ ನಿಯತಾಂಕ, ಇದನ್ನು ಫಂಕ್ಷನ್ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ, ಇದು ವಹಿವಾಟು ಐಡಿ (PoW- ಕ್ಯಾಪ್ಚಾ ಟಾಸ್ಕ್) ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.

ಕಾರ್ಯವು (ಈ ಯೋಜನೆಯಿಂದ ಇತರ ಕಾರ್ಯಗಳಂತೆ) ಸಾಲದ ಕರೆ ತಂತ್ರವನ್ನು ಬಳಸುತ್ತದೆ, ಕಾರ್ಯದ ಫಲಿತಾಂಶವು ಈ ಕಾರ್ಯವನ್ನು ಕರೆಯಲು ಶುಲ್ಕದ ಪಾವತಿಗೆ ಹಣಕಾಸು ಒದಗಿಸುವುದು. ಈ ಪರಿಹಾರಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಇದೀಗ ವಾಲೆಟ್ ಅನ್ನು ರಚಿಸಿದ ಬಳಕೆದಾರರು ತಕ್ಷಣವೇ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬಹುದು ಮತ್ತು ವಹಿವಾಟು ಶುಲ್ಕವನ್ನು ಪಾವತಿಸಲು ಅನುಮತಿಸುವ ಆಸ್ತಿಯನ್ನು ಖರೀದಿಸುವ ಅಥವಾ ಸ್ವೀಕರಿಸುವ ಬಗ್ಗೆ ಚಿಂತಿಸಬೇಕಾಗಿಲ್ಲ.

ನೋಂದಣಿ ಕಾರ್ಯದ ಫಲಿತಾಂಶವು ಎರಡು ದಾಖಲೆಗಳು:

${owner)_referer = referer
${referer}_referral_${owner} = owner

ಇದು ಫಾರ್ವರ್ಡ್ ಮತ್ತು ರಿವರ್ಸ್ ಹುಡುಕಾಟಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ನೀಡಿರುವ ಬಳಕೆದಾರರ ರೆಫರರ್ ಮತ್ತು ನೀಡಿದ ಬಳಕೆದಾರರ ಎಲ್ಲಾ ಉಲ್ಲೇಖಗಳು).

ನಿಧಿಯ ಕಾರ್ಯವು ನೈಜ ಕಾರ್ಯವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಹೆಚ್ಚು ಟೆಂಪ್ಲೇಟ್ ಆಗಿದೆ. ಅದರ ಪ್ರಸ್ತುತಪಡಿಸಿದ ರೂಪದಲ್ಲಿ, ಇದು ವಹಿವಾಟಿನಿಂದ ವರ್ಗಾವಣೆಗೊಂಡ ಎಲ್ಲಾ ಹಣವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು 1, 2, 3 ಹಂತಗಳ ರೆಫರರ್‌ಗಳ ಖಾತೆಗಳಿಗೆ "ಕ್ಯಾಶ್‌ಬ್ಯಾಕ್" ಖಾತೆಗೆ ಮತ್ತು "ಬದಲಾವಣೆ" ಖಾತೆಗೆ ವಿತರಿಸುತ್ತದೆ (ಹಿಂದಿನದಕ್ಕೆ ವಿತರಿಸಿದಾಗ ಉಳಿದಿರುವ ಎಲ್ಲವೂ ಖಾತೆಗಳು ಇಲ್ಲಿಗೆ ಹೋಗುತ್ತವೆ).

ಕ್ಯಾಶ್‌ಬ್ಯಾಕ್ ಎನ್ನುವುದು ಅಂತಿಮ ಬಳಕೆದಾರರನ್ನು ಉಲ್ಲೇಖಿತ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಭಾಗವಹಿಸಲು ಪ್ರೇರೇಪಿಸುವ ಸಾಧನವಾಗಿದೆ. ಬಳಕೆದಾರನು ಸಿಸ್ಟಂನಿಂದ ಪಾವತಿಸಿದ ಆಯೋಗದ ಭಾಗವನ್ನು "ಕ್ಯಾಶ್ಬ್ಯಾಕ್" ರೂಪದಲ್ಲಿ ರೆಫರಲ್ಗಳಿಗೆ ಪ್ರತಿಫಲದ ರೀತಿಯಲ್ಲಿಯೇ ಹಿಂಪಡೆಯಬಹುದು.

ಉಲ್ಲೇಖಿತ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸುವಾಗ, ನಿಧಿಯ ಕಾರ್ಯವನ್ನು ಮಾರ್ಪಡಿಸಬೇಕು ಮತ್ತು ಸಿಸ್ಟಮ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸ್ಮಾರ್ಟ್ ಖಾತೆಯ ಮುಖ್ಯ ತರ್ಕಕ್ಕೆ ಸಂಯೋಜಿಸಬೇಕು. ಉದಾಹರಣೆಗೆ, ಮಾಡಿದ ಪಂತಕ್ಕಾಗಿ ಉಲ್ಲೇಖಿತ ಪ್ರತಿಫಲವನ್ನು ಪಾವತಿಸಿದರೆ, ನಂತರ ನಿಧಿಯ ಕಾರ್ಯವನ್ನು ಪಂತವನ್ನು ಇರಿಸಲಾಗಿರುವ ತರ್ಕದಲ್ಲಿ ನಿರ್ಮಿಸಬೇಕು (ಅಥವಾ ಪ್ರತಿಫಲವನ್ನು ಪಾವತಿಸಲು ಮತ್ತೊಂದು ಉದ್ದೇಶಿತ ಕ್ರಿಯೆಯನ್ನು ನಡೆಸಲಾಗುತ್ತದೆ). ಈ ಕಾರ್ಯದಲ್ಲಿ ಮೂರು ಹಂತದ ಉಲ್ಲೇಖಿತ ಪ್ರತಿಫಲಗಳನ್ನು ಕೋಡ್ ಮಾಡಲಾಗಿದೆ. ನೀವು ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಮಟ್ಟವನ್ನು ಮಾಡಬೇಕಾದರೆ, ಇದನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ಸಹ ಸರಿಪಡಿಸಲಾಗುತ್ತದೆ. ರಿವಾರ್ಡ್ ಶೇಕಡಾವಾರು ಲೆವೆಲ್ 1-ಲೆವೆಲ್ 3 ಸ್ಥಿರಾಂಕಗಳಿಂದ ಹೊಂದಿಸಲಾಗಿದೆ, ಅದನ್ನು ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ ಮೊತ್ತ * ಮಟ್ಟ / 1000, ಅಂದರೆ, ಮೌಲ್ಯ 1 0,1% ಗೆ ಅನುರೂಪವಾಗಿದೆ (ಇದನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ಸಹ ಬದಲಾಯಿಸಬಹುದು).

ಕಾರ್ಯವನ್ನು ಕರೆಯುವುದು ಖಾತೆಯ ಸಮತೋಲನವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ ಮತ್ತು ಫಾರ್ಮ್‌ನ ಲಾಗಿಂಗ್ ಉದ್ದೇಶಗಳಿಗಾಗಿ ನಮೂದುಗಳನ್ನು ಸಹ ರಚಿಸುತ್ತದೆ:

fund_address_txid = address:owner:inc:level:timestamp
Для получения timestamp (текущего времени) используется такая вот связка
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}

ಅಂದರೆ, ವಹಿವಾಟಿನ ಸಮಯವು ಅದು ಇರುವ ಬ್ಲಾಕ್ನ ಸಮಯವಾಗಿದೆ. ವಹಿವಾಟಿನ ಸಮಯದ ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ಬಳಸುವುದಕ್ಕಿಂತ ಇದು ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಕರೆ ಮಾಡಬಹುದಾದ ಮೂಲಕ ಇದು ಲಭ್ಯವಿಲ್ಲ.
ಹಿಂತೆಗೆದುಕೊಳ್ಳುವ ಕಾರ್ಯವು ಬಳಕೆದಾರರ ಖಾತೆಗೆ ಸಂಗ್ರಹವಾದ ಎಲ್ಲಾ ಪ್ರತಿಫಲಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಲಾಗಿಂಗ್ ಉದ್ದೇಶಗಳಿಗಾಗಿ ನಮೂದುಗಳನ್ನು ರಚಿಸುತ್ತದೆ:

# withdraw log: withdraw_user_txid=amount:timestamp

ಅಪ್ಲಿಕೇಶನ್

ಅಪ್ಲಿಕೇಶನ್‌ನ ಮುಖ್ಯ ಭಾಗವೆಂದರೆ affiliate.js ಲೈಬ್ರರಿ, ಇದು ಅಂಗಸಂಸ್ಥೆ ಡೇಟಾ ಮಾದರಿಗಳು ಮತ್ತು WAVES NODE REST API ನಡುವಿನ ಸೇತುವೆಯಾಗಿದೆ. ಚೌಕಟ್ಟಿನಿಂದ ಸ್ವತಂತ್ರವಾದ ಅಮೂರ್ತತೆಯ ಮಟ್ಟವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ (ಯಾವುದೇ ಒಂದನ್ನು ಬಳಸಬಹುದು). ವೇವ್ಸ್ ಕೀಪರ್ ಅನ್ನು ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ ಎಂದು ಸಕ್ರಿಯ ಕಾರ್ಯಗಳು (ನೋಂದಣಿ, ಹಿಂತೆಗೆದುಕೊಳ್ಳುವಿಕೆ) ಲೈಬ್ರರಿ ಸ್ವತಃ ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ.

ಅನುಷ್ಠಾನ ವಿಧಾನಗಳು:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

ವಿಧಾನಗಳ ಕಾರ್ಯವು ಹೆಸರುಗಳಿಂದ ಸ್ಪಷ್ಟವಾಗಿದೆ ಮತ್ತು ಹಿಂತಿರುಗಿದ ಡೇಟಾವನ್ನು ಕೋಡ್‌ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ. ರಿಜಿಸ್ಟರ್ ಕಾರ್ಯಕ್ಕೆ ಹೆಚ್ಚುವರಿ ಕಾಮೆಂಟ್‌ಗಳ ಅಗತ್ಯವಿದೆ - ಇದು ವಹಿವಾಟಿನ ಐಡಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಚಕ್ರವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಇದರಿಂದ ಅದು 123 ರಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ - ಇದು ಮೇಲೆ ವಿವರಿಸಿದ PoW- ಕ್ಯಾಪ್ಚಾ ಆಗಿದೆ, ಇದು ಸಾಮೂಹಿಕ ನೋಂದಣಿಗಳ ವಿರುದ್ಧ ರಕ್ಷಿಸುತ್ತದೆ. ಕಾರ್ಯವು ಅಗತ್ಯವಿರುವ ಐಡಿಯೊಂದಿಗೆ ವಹಿವಾಟನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ನಂತರ ಅದನ್ನು ವೇವ್ಸ್ ಕೀಪರ್ ಮೂಲಕ ಸಹಿ ಮಾಡುತ್ತದೆ.

DEX ಅಂಗಸಂಸ್ಥೆ ಪ್ರೋಗ್ರಾಂ ಇಲ್ಲಿ ಲಭ್ಯವಿದೆ GitHub.com.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ