ಹ್ಯಾಸ್ಕೆಲ್‌ನೊಂದಿಗೆ ಫನ್‌ಸಿಯನ್ನು ಫಂಕ್ಷನಲ್ ಆಗಿ ಪರಿವರ್ತಿಸುವುದು: ಸೆರೊಕೆಲ್ ಟೆಲಿಗ್ರಾಮ್ ಬ್ಲಾಕ್‌ಚೈನ್ ಸ್ಪರ್ಧೆಯನ್ನು ಹೇಗೆ ಗೆದ್ದರು

ಟೆಲಿಗ್ರಾಮ್ ಎಂದು ನೀವು ಬಹುಶಃ ಕೇಳಿರಬಹುದು ಟನ್ ಬ್ಲಾಕ್‌ಚೈನ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಿದೆ. ಆದರೆ ನೀವು ಬಹಳ ಹಿಂದೆಯೇ ಟೆಲಿಗ್ರಾಮ್ ಸುದ್ದಿಯನ್ನು ಕಳೆದುಕೊಂಡಿರಬಹುದು ಸ್ಪರ್ಧೆಯನ್ನು ಘೋಷಿಸಿದರು ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳ ಅನುಷ್ಠಾನಕ್ಕಾಗಿ.

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

ಆದರೆ ಸ್ವಲ್ಪ ಸನ್ನಿವೇಶದಿಂದ ಪ್ರಾರಂಭಿಸೋಣ.

ಸ್ಪರ್ಧೆ ಮತ್ತು ಅದರ ಷರತ್ತುಗಳು

ಆದ್ದರಿಂದ, ಭಾಗವಹಿಸುವವರ ಮುಖ್ಯ ಕಾರ್ಯಗಳು ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಉದ್ದೇಶಿತ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳ ಅನುಷ್ಠಾನ, ಹಾಗೆಯೇ TON ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಸುಧಾರಿಸಲು ಪ್ರಸ್ತಾಪಗಳನ್ನು ಮಾಡುವುದು. ಸ್ಪರ್ಧೆಯು ಸೆಪ್ಟೆಂಬರ್ 24 ರಿಂದ ಅಕ್ಟೋಬರ್ 15 ರವರೆಗೆ ನಡೆಯಿತು ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ನವೆಂಬರ್ 15 ರಂದು ಮಾತ್ರ ಪ್ರಕಟಿಸಲಾಯಿತು. ಈ ಸಮಯದಲ್ಲಿ ಟೆಲಿಗ್ರಾಮ್ VoIP ಕರೆಗಳ ಗುಣಮಟ್ಟವನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ನಿರ್ಣಯಿಸಲು C++ ನಲ್ಲಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ವಿನ್ಯಾಸ ಮತ್ತು ಅಭಿವೃದ್ಧಿಯ ಕುರಿತು ಸ್ಪರ್ಧೆಗಳ ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಲು ಮತ್ತು ಪ್ರಕಟಿಸಲು ಟೆಲಿಗ್ರಾಮ್ ಯಶಸ್ವಿಯಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸಿ.

ಸಂಘಟಕರು ಪ್ರಸ್ತಾಪಿಸಿದ ಪಟ್ಟಿಯಿಂದ ನಾವು ಎರಡು ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇವೆ. ಅವುಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ, ನಾವು TON ನೊಂದಿಗೆ ವಿತರಿಸಿದ ಪರಿಕರಗಳನ್ನು ಬಳಸಿದ್ದೇವೆ ಮತ್ತು ಎರಡನೆಯದನ್ನು ನಮ್ಮ ಇಂಜಿನಿಯರ್‌ಗಳು ನಿರ್ದಿಷ್ಟವಾಗಿ TON ಗಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮತ್ತು ಹ್ಯಾಸ್‌ಕೆಲ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಿದ ಹೊಸ ಭಾಷೆಯಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ.

ಕ್ರಿಯಾತ್ಮಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಆಯ್ಕೆಯು ಆಕಸ್ಮಿಕವಲ್ಲ. ನಮ್ಮಲ್ಲಿ ಕಾರ್ಪೊರೇಟ್ ಬ್ಲಾಗ್ ಕ್ರಿಯಾತ್ಮಕ ಭಾಷೆಗಳ ಸಂಕೀರ್ಣತೆಯು ಒಂದು ದೊಡ್ಡ ಉತ್ಪ್ರೇಕ್ಷೆ ಎಂದು ನಾವು ಏಕೆ ಭಾವಿಸುತ್ತೇವೆ ಮತ್ತು ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಅವುಗಳನ್ನು ವಸ್ತು-ಆಧಾರಿತ ಪದಗಳಿಗಿಂತ ಏಕೆ ಆದ್ಯತೆ ನೀಡುತ್ತೇವೆ ಎಂಬುದರ ಕುರಿತು ನಾವು ಆಗಾಗ್ಗೆ ಮಾತನಾಡುತ್ತೇವೆ. ಮೂಲಕ, ಇದು ಸಹ ಒಳಗೊಂಡಿದೆ ಈ ಲೇಖನದ ಮೂಲ.

ನಾವು ಭಾಗವಹಿಸಲು ಏಕೆ ನಿರ್ಧರಿಸಿದ್ದೇವೆ?

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ನಮ್ಮ ವಿಶೇಷತೆಯು ಪ್ರಮಾಣಿತವಲ್ಲದ ಮತ್ತು ಸಂಕೀರ್ಣವಾದ ಯೋಜನೆಗಳಾಗಿದ್ದು ಅದು ವಿಶೇಷ ಕೌಶಲ್ಯಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ IT ಸಮುದಾಯಕ್ಕೆ ವೈಜ್ಞಾನಿಕ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ನಾವು ಮುಕ್ತ ಮೂಲ ಅಭಿವೃದ್ಧಿಯನ್ನು ಬಲವಾಗಿ ಬೆಂಬಲಿಸುತ್ತೇವೆ ಮತ್ತು ಅದರ ಜನಪ್ರಿಯತೆಯಲ್ಲಿ ತೊಡಗಿದ್ದೇವೆ ಮತ್ತು ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನ ಮತ್ತು ಗಣಿತ ಕ್ಷೇತ್ರದಲ್ಲಿ ಪ್ರಮುಖ ರಷ್ಯಾದ ವಿಶ್ವವಿದ್ಯಾಲಯಗಳೊಂದಿಗೆ ಸಹಕರಿಸುತ್ತೇವೆ.

ಸ್ಪರ್ಧೆಯ ಆಸಕ್ತಿದಾಯಕ ಕಾರ್ಯಗಳು ಮತ್ತು ನಮ್ಮ ಪ್ರೀತಿಯ ಟೆಲಿಗ್ರಾಮ್ ಯೋಜನೆಯಲ್ಲಿ ತೊಡಗಿಸಿಕೊಳ್ಳುವುದು ಅತ್ಯುತ್ತಮ ಪ್ರೇರಣೆಯಾಗಿದೆ, ಆದರೆ ಬಹುಮಾನ ನಿಧಿಯು ಹೆಚ್ಚುವರಿ ಪ್ರೋತ್ಸಾಹಕವಾಯಿತು. 🙂

ಟನ್ ಬ್ಲಾಕ್‌ಚೈನ್ ಸಂಶೋಧನೆ

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

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

ದಸ್ತಾವೇಜನ್ನು ಸ್ವತಃ ಚೆನ್ನಾಗಿ ಸಂಶೋಧಿಸಲಾಗಿದೆ, ಆದರೆ ಕೆಲವು ಹಂತಗಳಲ್ಲಿ ಓದಲು ಕಷ್ಟವಾಯಿತು. ಆಗಾಗ್ಗೆ ನಾವು ಕೆಲವು ಅಂಶಗಳಿಗೆ ಹಿಂತಿರುಗಬೇಕಾಗಿತ್ತು ಮತ್ತು ಅಮೂರ್ತ ವಿಚಾರಗಳ ಉನ್ನತ ಮಟ್ಟದ ವಿವರಣೆಯಿಂದ ಕೆಳಮಟ್ಟದ ಅನುಷ್ಠಾನದ ವಿವರಗಳಿಗೆ ಬದಲಾಯಿಸಬೇಕಾಗಿತ್ತು.

ವಿವರಣೆಯು ಅನುಷ್ಠಾನದ ವಿವರವಾದ ವಿವರಣೆಯನ್ನು ಒಳಗೊಂಡಿರದಿದ್ದರೆ ಅದು ಸುಲಭವಾಗುತ್ತದೆ. ವರ್ಚುವಲ್ ಯಂತ್ರವು ಅದರ ಸ್ಟಾಕ್ ಅನ್ನು ಹೇಗೆ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಮಾಹಿತಿಯು ಡೆವಲಪರ್‌ಗಳಿಗೆ ಸಹಾಯ ಮಾಡುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ TON ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳನ್ನು ರಚಿಸುವುದನ್ನು ವಿಚಲಿತಗೊಳಿಸುತ್ತದೆ.

ನಿಕ್ಸ್: ಯೋಜನೆಯನ್ನು ಒಟ್ಟಿಗೆ ಸೇರಿಸುವುದು

ಸೆರೊಕೆಲ್‌ನಲ್ಲಿ ನಾವು ದೊಡ್ಡ ಅಭಿಮಾನಿಗಳು ನಿಕ್ಸ್. ನಾವು ಅದರೊಂದಿಗೆ ನಮ್ಮ ಯೋಜನೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತೇವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿಯೋಜಿಸುತ್ತೇವೆ ನಿಕ್ಸ್ಆಪ್ಸ್, ಮತ್ತು ನಮ್ಮ ಎಲ್ಲಾ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ ನಿಕ್ಸೋಸ್. ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ನಮ್ಮ ಎಲ್ಲಾ ನಿರ್ಮಾಣಗಳು ಪುನರುತ್ಪಾದಿಸಲ್ಪಡುತ್ತವೆ ಮತ್ತು ನಿಕ್ಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸಬಹುದಾದ ಯಾವುದೇ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ.

ಆದ್ದರಿಂದ ನಾವು ರಚಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ TON ಅಸೆಂಬ್ಲಿಗಾಗಿ ಎಕ್ಸ್‌ಪ್ರೆಶನ್‌ನೊಂದಿಗೆ ನಿಕ್ಸ್ ಓವರ್‌ಲೇ. ಅದರ ಸಹಾಯದಿಂದ, TON ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡುವುದು ಸಾಧ್ಯವಾದಷ್ಟು ಸರಳವಾಗಿದೆ:

$ cd ~/.config/nixpkgs/overlays && git clone https://github.com/serokell/ton.nix
$ cd /path/to/ton/repo && nix-shell
[nix-shell]$ cmakeConfigurePhase && make

ನೀವು ಯಾವುದೇ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಅಗತ್ಯವಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ನೀವು NixOS, Ubuntu, ಅಥವಾ macOS ಅನ್ನು ಬಳಸುತ್ತಿರಲಿ, ನಿಕ್ಸ್ ನಿಮಗಾಗಿ ಎಲ್ಲವನ್ನೂ ಮಾಂತ್ರಿಕವಾಗಿ ಮಾಡುತ್ತದೆ.

TON ಗಾಗಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್

TON ನೆಟ್ವರ್ಕ್ನಲ್ಲಿನ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದದ ಕೋಡ್ TON ವರ್ಚುವಲ್ ಮೆಷಿನ್ (TVM) ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ. TVM ಇತರ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿದೆ ಮತ್ತು ಬಹಳ ಆಸಕ್ತಿದಾಯಕ ಕಾರ್ಯವನ್ನು ಹೊಂದಿದೆ, ಉದಾಹರಣೆಗೆ, ಇದು ಕೆಲಸ ಮಾಡಬಹುದು ಮುಂದುವರಿಕೆಗಳು и ಡೇಟಾಗೆ ಲಿಂಕ್‌ಗಳು.

ಇದಲ್ಲದೆ, TON ನ ವ್ಯಕ್ತಿಗಳು ಮೂರು ಹೊಸ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ರಚಿಸಿದ್ದಾರೆ:

ಐದು ಹೋಲುವ ಸಾರ್ವತ್ರಿಕ ಸ್ಟಾಕ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ ಫಾರ್ತ್. TVM ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಸಾಮರ್ಥ್ಯ ಅವರ ಸೂಪರ್ ಸಾಮರ್ಥ್ಯವಾಗಿದೆ.

ಫನ್ ಸಿ ಇದು ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ C ಮತ್ತು ಇನ್ನೊಂದು ಭಾಷೆಗೆ ಸಂಕಲಿಸಲಾಗಿದೆ - ಫಿಫ್ಟ್ ಅಸೆಂಬ್ಲರ್.

ಐದನೇ ಅಸೆಂಬ್ಲರ್ — TVM ಗಾಗಿ ಬೈನರಿ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್ ಕೋಡ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು ಐದನೇ ಲೈಬ್ರರಿ. ಐದನೇ ಅಸೆಂಬ್ಲರ್ ಕಂಪೈಲರ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ. ಈ ಎಂಬೆಡೆಡ್ ಡೊಮೇನ್ ನಿರ್ದಿಷ್ಟ ಭಾಷೆ (eDSL).

ನಮ್ಮ ಸ್ಪರ್ಧೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ

ಅಂತಿಮವಾಗಿ, ನಮ್ಮ ಪ್ರಯತ್ನಗಳ ಫಲಿತಾಂಶಗಳನ್ನು ನೋಡುವ ಸಮಯ.

ಅಸಮಕಾಲಿಕ ಪಾವತಿ ಚಾನಲ್

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

ನಾವು ಸಮಸ್ಯೆಗೆ ಸಾಕಷ್ಟು ಸರಳ ಪರಿಹಾರವನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ಎರಡು ಪಕ್ಷಗಳು ಸಹಿ ಮಾಡಿದ ಸಂದೇಶಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು, ಪ್ರತಿಯೊಂದೂ ಎರಡು ಸಂಖ್ಯೆಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ-ಪ್ರತಿ ಪಕ್ಷವು ಪಾವತಿಸಿದ ಪೂರ್ಣ ಮೊತ್ತ. ಈ ಎರಡು ಸಂಖ್ಯೆಗಳು ಹಾಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ ವೆಕ್ಟರ್ ಗಡಿಯಾರ ಸಾಂಪ್ರದಾಯಿಕ ವಿತರಣೆ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮತ್ತು ವಹಿವಾಟುಗಳ ಮೇಲೆ "ಮೊದಲು ಸಂಭವಿಸಿದೆ" ಆದೇಶವನ್ನು ಹೊಂದಿಸಿ. ಈ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು, ಒಪ್ಪಂದವು ಯಾವುದೇ ಸಂಭವನೀಯ ಸಂಘರ್ಷವನ್ನು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

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

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

  1. ವಿವರಣೆ ಒಂದೇ ರೀತಿಯ ವಿಧಾನ, ಏಕಮುಖ ಚಾನಲ್ನ ಸಂದರ್ಭದಲ್ಲಿ ಮಾತ್ರ.
  2. ಟ್ಯುಟೋರಿಯಲ್, ಇದು ನಮ್ಮ ಕಲ್ಪನೆಯಂತೆಯೇ ವಿವರಿಸುತ್ತದೆ, ಆದರೆ ಸಾಮಾನ್ಯ ಸರಿಯಾದತೆ ಮತ್ತು ಸಂಘರ್ಷ ಪರಿಹಾರ ಕಾರ್ಯವಿಧಾನಗಳಂತಹ ಅನೇಕ ಪ್ರಮುಖ ವಿವರಗಳನ್ನು ವಿವರಿಸದೆ.

ನಮ್ಮ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ವಿವರವಾಗಿ ವಿವರಿಸಲು ಇದು ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ ಎಂದು ಸ್ಪಷ್ಟವಾಯಿತು, ಅದರ ಸರಿಯಾದತೆಗೆ ವಿಶೇಷ ಗಮನ ಕೊಡುತ್ತದೆ. ಹಲವಾರು ಪುನರಾವರ್ತನೆಗಳ ನಂತರ, ವಿವರಣೆಯು ಸಿದ್ಧವಾಗಿದೆ, ಮತ್ತು ಈಗ ನೀವು ಕೂಡ ಮಾಡಬಹುದು. ಅವಳನ್ನು ನೋಡಿ.

ನಾವು FunC ನಲ್ಲಿ ಒಪ್ಪಂದವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಸಂಘಟಕರು ಶಿಫಾರಸು ಮಾಡಿದಂತೆ ನಮ್ಮ ಒಪ್ಪಂದದೊಂದಿಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಫೈಫ್ಟ್‌ನಲ್ಲಿ ಸಂವಹನ ನಡೆಸಲು ನಾವು ಕಮಾಂಡ್ ಲೈನ್ ಉಪಯುಕ್ತತೆಯನ್ನು ಬರೆದಿದ್ದೇವೆ. ನಮ್ಮ CLI ಗಾಗಿ ನಾವು ಬೇರೆ ಯಾವುದೇ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದಿತ್ತು, ಆದರೆ ಅದು ಆಚರಣೆಯಲ್ಲಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡಲು ಫಿಟ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸಲು ನಾವು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದೇವೆ.

ಪ್ರಾಮಾಣಿಕವಾಗಿ ಹೇಳಬೇಕೆಂದರೆ, ಫಿಫ್ಟ್‌ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿದ ನಂತರ, ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಪರಿಕರಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳೊಂದಿಗೆ ಜನಪ್ರಿಯ ಮತ್ತು ಸಕ್ರಿಯವಾಗಿ ಬಳಸಿದ ಭಾಷೆಗಳಿಗೆ ಈ ಭಾಷೆಯನ್ನು ಆದ್ಯತೆ ನೀಡಲು ನಾವು ಯಾವುದೇ ಬಲವಾದ ಕಾರಣಗಳನ್ನು ನೋಡಲಿಲ್ಲ. ಸ್ಟಾಕ್-ಆಧಾರಿತ ಭಾಷೆಯಲ್ಲಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸಾಕಷ್ಟು ಅಹಿತಕರವಾಗಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಸ್ಟಾಕ್‌ನಲ್ಲಿರುವುದನ್ನು ನೀವು ನಿರಂತರವಾಗಿ ನಿಮ್ಮ ತಲೆಯಲ್ಲಿ ಇಟ್ಟುಕೊಳ್ಳಬೇಕು ಮತ್ತು ಕಂಪೈಲರ್ ಇದಕ್ಕೆ ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ.

ಆದ್ದರಿಂದ, ನಮ್ಮ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಫಿಫ್ಟ್‌ನ ಅಸ್ತಿತ್ವದ ಏಕೈಕ ಸಮರ್ಥನೆಯು ಫಿಫ್ಟ್ ಅಸೆಂಬ್ಲರ್‌ಗೆ ಹೋಸ್ಟ್ ಭಾಷೆಯಾಗಿ ಅದರ ಪಾತ್ರವಾಗಿದೆ. ಆದರೆ ಈ ಮೂಲಭೂತವಾಗಿ ಏಕೈಕ ಉದ್ದೇಶಕ್ಕಾಗಿ ಹೊಸದನ್ನು ಆವಿಷ್ಕರಿಸುವ ಬದಲು TVM ಅಸೆಂಬ್ಲರ್ ಅನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೆಲವು ಭಾಷೆಗಳಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡುವುದು ಉತ್ತಮವಲ್ಲವೇ?

TVM ಹ್ಯಾಸ್ಕೆಲ್ eDSL

ಈಗ ನಮ್ಮ ಎರಡನೇ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದದ ಬಗ್ಗೆ ಮಾತನಾಡಲು ಸಮಯ. ನಾವು ಬಹು-ಸಹಿ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ನಿರ್ಧರಿಸಿದ್ದೇವೆ, ಆದರೆ FunC ನಲ್ಲಿ ಮತ್ತೊಂದು ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದವನ್ನು ಬರೆಯುವುದು ತುಂಬಾ ನೀರಸವಾಗಿರುತ್ತದೆ. ನಾವು ಸ್ವಲ್ಪ ಪರಿಮಳವನ್ನು ಸೇರಿಸಲು ಬಯಸಿದ್ದೇವೆ ಮತ್ತು ಅದು TVM ಗಾಗಿ ನಮ್ಮದೇ ಅಸೆಂಬ್ಲಿ ಭಾಷೆಯಾಗಿತ್ತು.

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

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

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

ನಮ್ಮ eDSL ನಲ್ಲಿ ಮಲ್ಟಿಸಿಗ್ ವ್ಯಾಲೆಟ್‌ನ ಅನುಷ್ಠಾನವು ಹೀಗಿದೆ:

main :: IO ()
main = putText $ pretty $ declProgram procedures methods
  where
    procedures =
      [ ("recv_external", decl recvExternal)
      , ("recv_internal", decl recvInternal)
      ]
    methods =
      [ ("seqno", declMethod getSeqno)
      ]

data Storage = Storage
  { sCnt :: Word32
  , sPubKey :: PublicKey
  }

instance DecodeSlice Storage where
  type DecodeSliceFields Storage = [PublicKey, Word32]
  decodeFromSliceImpl = do
    decodeFromSliceImpl @Word32
    decodeFromSliceImpl @PublicKey

instance EncodeBuilder Storage where
  encodeToBuilder = do
    encodeToBuilder @Word32
    encodeToBuilder @PublicKey

data WalletError
  = SeqNoMismatch
  | SignatureMismatch
  deriving (Eq, Ord, Show, Generic)

instance Exception WalletError

instance Enum WalletError where
  toEnum 33 = SeqNoMismatch
  toEnum 34 = SignatureMismatch
  toEnum _ = error "Uknown MultiSigError id"

  fromEnum SeqNoMismatch = 33
  fromEnum SignatureMismatch = 34

recvInternal :: '[Slice] :-> '[]
recvInternal = drop

recvExternal :: '[Slice] :-> '[]
recvExternal = do
  decodeFromSlice @Signature
  dup
  preloadFromSlice @Word32
  stacktype @[Word32, Slice, Signature]
  -- cnt cs sign

  pushRoot
  decodeFromCell @Storage
  stacktype @[PublicKey, Word32, Word32, Slice, Signature]
  -- pk cnt' cnt cs sign

  xcpu @1 @2
  stacktype @[Word32, Word32, PublicKey, Word32, Slice, Signature]
  -- cnt cnt' pk cnt cs sign

  equalInt >> throwIfNot SeqNoMismatch

  push @2
  sliceHash
  stacktype @[Hash Slice, PublicKey, Word32, Slice, Signature]
  -- hash pk cnt cs sign

  xc2pu @0 @4 @4
  stacktype @[PublicKey, Signature, Hash Slice, Word32, Slice, PublicKey]
  -- pubk sign hash cnt cs pubk

  chkSignU
  stacktype @[Bool, Word32, Slice, PublicKey]
  -- ? cnt cs pubk

  throwIfNot SignatureMismatch
  accept

  swap
  decodeFromSlice @Word32
  nip

  dup
  srefs @Word8

  pushInt 0
  if IsEq
  then ignore
  else do
    decodeFromSlice @Word8
    decodeFromSlice @(Cell MessageObject)
    stacktype @[Slice, Cell MessageObject, Word8, Word32, PublicKey]
    xchg @2
    sendRawMsg
    stacktype @[Slice, Word32, PublicKey]

  endS
  inc

  encodeToCell @Storage
  popRoot

getSeqno :: '[] :-> '[Word32]
getSeqno = do
  pushRoot
  cToS
  preloadFromSlice @Word32

ನಮ್ಮ eDSL ಮತ್ತು ಬಹು-ಸಹಿ ವಾಲೆಟ್ ಒಪ್ಪಂದದ ಸಂಪೂರ್ಣ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು ಈ ಭಂಡಾರ. ಇನ್ನೂ ಸ್ವಲ್ಪ ವಿವರವಾಗಿ ಹೇಳಿದರು ಅಂತರ್ನಿರ್ಮಿತ ಭಾಷೆಗಳ ಬಗ್ಗೆ, ನಮ್ಮ ಸಹೋದ್ಯೋಗಿ ಜಾರ್ಜಿ ಅಗಾಪೋವ್.

ಸ್ಪರ್ಧೆ ಮತ್ತು TON ಬಗ್ಗೆ ತೀರ್ಮಾನಗಳು

ಒಟ್ಟಾರೆಯಾಗಿ, ನಮ್ಮ ಕೆಲಸವು 380 ಗಂಟೆಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿತು (ದಾಖಲೆಗಳು, ಸಭೆಗಳು ಮತ್ತು ನಿಜವಾದ ಅಭಿವೃದ್ಧಿಯೊಂದಿಗೆ ಪರಿಚಿತತೆ ಸೇರಿದಂತೆ). ಸ್ಪರ್ಧೆಯ ಯೋಜನೆಯಲ್ಲಿ ಐದು ಡೆವಲಪರ್‌ಗಳು ಭಾಗವಹಿಸಿದ್ದರು: CTO, ಟೀಮ್ ಲೀಡ್, ಬ್ಲಾಕ್‌ಚೈನ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ತಜ್ಞರು ಮತ್ತು ಹ್ಯಾಸ್ಕೆಲ್ ಸಾಫ್ಟ್‌ವೇರ್ ಡೆವಲಪರ್‌ಗಳು.

ಸ್ಪರ್ಧೆಯಲ್ಲಿ ತೊಂದರೆಯಿಲ್ಲದೆ ಭಾಗವಹಿಸಲು ನಾವು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಕಂಡುಕೊಂಡಿದ್ದೇವೆ, ಏಕೆಂದರೆ ಹ್ಯಾಕಥಾನ್‌ನ ಉತ್ಸಾಹ, ನಿಕಟ ಟೀಮ್‌ವರ್ಕ್ ಮತ್ತು ಹೊಸ ತಂತ್ರಜ್ಞಾನಗಳ ಅಂಶಗಳಲ್ಲಿ ತ್ವರಿತವಾಗಿ ಮುಳುಗುವ ಅಗತ್ಯವು ಯಾವಾಗಲೂ ರೋಮಾಂಚನಕಾರಿಯಾಗಿದೆ. ಸೀಮಿತ ಸಂಪನ್ಮೂಲಗಳ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಗರಿಷ್ಠ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಧಿಸಲು ಹಲವಾರು ನಿದ್ದೆಯಿಲ್ಲದ ರಾತ್ರಿಗಳು ಅಮೂಲ್ಯವಾದ ಅನುಭವ ಮತ್ತು ಅತ್ಯುತ್ತಮ ನೆನಪುಗಳಿಂದ ಸರಿದೂಗಿಸಲ್ಪಡುತ್ತವೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಅಂತಹ ಕಾರ್ಯಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದು ಯಾವಾಗಲೂ ಕಂಪನಿಯ ಪ್ರಕ್ರಿಯೆಗಳ ಉತ್ತಮ ಪರೀಕ್ಷೆಯಾಗಿದೆ, ಏಕೆಂದರೆ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಆಂತರಿಕ ಸಂವಹನವಿಲ್ಲದೆ ನಿಜವಾದ ಯೋಗ್ಯ ಫಲಿತಾಂಶಗಳನ್ನು ಸಾಧಿಸುವುದು ತುಂಬಾ ಕಷ್ಟ.

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

ಈ ಲೇಖನವನ್ನು ಓದಿದ ನಂತರ ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಅಥವಾ ನಿಮ್ಮ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು TON ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಆಲೋಚನೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ನಮಗೆ ಬರೆಯಿರಿ - ನಮ್ಮ ಅನುಭವವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ನಾವು ಸಂತೋಷಪಡುತ್ತೇವೆ.

ಮೂಲ: www.habr.com

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