ನಾವು ಹಿಂದಿನ ಕೆಲವು ವರ್ಷಗಳ ಟ್ರೆಂಡ್ಗಳನ್ನು ನೋಡಿದರೆ, ನಾವು ಸಾರ್ವಕಾಲಿಕ ಬ್ಲಾಕ್ಚೈನ್ ಬಗ್ಗೆ ಕೇಳಿದ್ದೇವೆ, ಆದರೆ ನಿರ್ದಿಷ್ಟತೆಗಳ ಬಗ್ಗೆ ಹೆಚ್ಚು ಅಲ್ಲ.
Bitcoin, Ethereum, Dogecoin, Matic ಮತ್ತು ಇತರ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಬ್ಲಾಕ್ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಅವಲಂಬಿಸಿವೆ ಎಂದು ನಮಗೆ ತಿಳಿದಿದೆ. ಬ್ಲಾಕ್ಚೈನ್ 2021 ರಲ್ಲಿ ಹಲವಾರು ಕೈಗಾರಿಕೆಗಳಲ್ಲಿ ಕ್ರಾಂತಿಯನ್ನುಂಟು ಮಾಡಿದ ಮಹತ್ವದ ಘಟನೆಗಳನ್ನು ಮುನ್ನಡೆಸಿತು ಮತ್ತು ಹೊಸ ಸಾಧನೆಗಳಿಗೆ ದಾರಿ ಮಾಡಿಕೊಟ್ಟಿತು.
ಬ್ಲಾಕ್ಚೈನ್ ಎಡಿಟ್ ಮಾಡಲು, ಹ್ಯಾಕ್ ಮಾಡಲು ಅಥವಾ ವಂಚಿಸಲು ಕಷ್ಟಕರವಾದ ಅಥವಾ ಅಸಾಧ್ಯವಾದ ರೀತಿಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಾಧನವಾಗಿದೆ. ಇದು ನಕಲು ಮಾಡಲಾದ ವಹಿವಾಟುಗಳ ಡಿಜಿಟಲ್ ಲೆಡ್ಜರ್ ಆಗಿದೆ ಮತ್ತು ಬ್ಲಾಕ್ಚೈನ್ನ ಕಂಪ್ಯೂಟರ್ ಸಿಸ್ಟಮ್ಗಳ ಸಂಪೂರ್ಣ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಹರಡುತ್ತದೆ.
ಇದು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಎಲ್ಲಾ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳಿಗೆ ಶಕ್ತಿ ನೀಡುವ ನೆಲದ ಬ್ರೇಕಿಂಗ್ ಡೇಟಾಬೇಸ್ ತಂತ್ರಜ್ಞಾನವಾಗಿದೆ. ಬ್ಲಾಕ್ಚೈನ್ ಇಡೀ ನೆಟ್ವರ್ಕ್ನಾದ್ಯಂತ ಡೇಟಾಬೇಸ್ನ ಒಂದೇ ಪ್ರತಿಗಳನ್ನು ಹರಡುವ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಅನ್ನು ಹ್ಯಾಕ್ ಮಾಡಲು ಅಥವಾ ಮೋಸ ಮಾಡಲು ನಂಬಲಾಗದಷ್ಟು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.
ಬಿಟ್ಕಾಯಿನ್ ಈಗ ಬ್ಲಾಕ್ಚೈನ್ಗಾಗಿ ಅತ್ಯಂತ ಪ್ರಮುಖವಾದ ಬಳಕೆಯಾಗಿದ್ದರೂ, ತಂತ್ರಜ್ಞಾನವು ವ್ಯಾಪಕವಾದ ವಿವಿಧ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪೂರೈಸುತ್ತದೆ.
ಇತ್ತೀಚಿನ ವರ್ಷಗಳಲ್ಲಿ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಮತ್ತು ಬ್ಲಾಕ್ಚೈನ್ಗಳು ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗಿವೆ ಮತ್ತು ಈ ಪ್ರವೃತ್ತಿಯು ಮುಂದುವರಿಯುವ ನಿರೀಕ್ಷೆಯಿದೆ.
ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನೊಂದಿಗೆ ಸರಳವಾದ ಬ್ಲಾಕ್ಚೈನ್ ಅನ್ನು ಮಾಡುತ್ತೇವೆ. ಬ್ಲಾಕ್ಚೈನ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಮೂಲಭೂತ ತಿಳುವಳಿಕೆಯನ್ನು ಇದು ನಿಮಗೆ ಒದಗಿಸುತ್ತದೆ.
ನಾವು ಅದನ್ನು MelodyCoin ಎಂದು ಕರೆಯೋಣ ಮತ್ತು ಕ್ರಿಯೆಯನ್ನು ಸರಿಯಾಗಿ ಪಡೆದುಕೊಳ್ಳೋಣ!
ಒಂದು ಬ್ಲಾಕ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ
ಪ್ರಾರಂಭಿಸಲು, ನಾವು ಹೊಸ JavaScript ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ ಅದರಲ್ಲಿ ನಾವು ನಮ್ಮ ಎಲ್ಲಾ ಕೋಡ್ ಅನ್ನು ಇರಿಸುತ್ತೇವೆ.
ಇದನ್ನು main.js ಎಂದು ಕರೆಯೋಣ ಮತ್ತು ಬ್ಲಾಕ್ಚೈನ್ ಮತ್ತು ಬ್ಲಾಕ್ಗಳು ಹೇಗೆ ಕಾಣಬೇಕು ಎಂಬುದರ ವಿವರಣೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ.
ಒಂದು ಬ್ಲಾಕ್ ವರ್ಗವನ್ನು ರಚಿಸಿ ಮತ್ತು ಅದನ್ನು ಪ್ರಾರಂಭಿಸಲು ಆಬ್ಜೆಕ್ಟ್() { [ಸ್ಥಳೀಯ ಕೋಡ್] } ಎಂಬ ಕಾರ್ಯವನ್ನು ನೀಡಿ.
ಹೊಸ ಬ್ಲಾಕ್ ಅನ್ನು ರಚಿಸುವಾಗ ನೀವು ದಿನಾಂಕವನ್ನು ಮತ್ತು ಹಿಂದಿನ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ನೀಡಬೇಕು:
ಪ್ರತಿ ಆಸ್ತಿಯ ವ್ಯಾಖ್ಯಾನಗಳು ಇಲ್ಲಿವೆ:
- ಬ್ಲಾಕ್ ಅನ್ನು ಯಾವಾಗ ಮಾಡಲಾಗಿದೆ ಎಂದು ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಸೂಚಿಸುತ್ತದೆ. ನೀವು ಆಯ್ಕೆಮಾಡುವ ಯಾವುದೇ ಸ್ವರೂಪವನ್ನು ನೀವು ಬಳಸಬಹುದು (ಈ ಸಂದರ್ಭದಲ್ಲಿ, UNIX ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್).
- ಈ ಬ್ಲಾಕ್ಗೆ ನೀವು ಸಂಪರ್ಕಿಸಲು ಬಯಸುವ ಯಾವುದೇ ರೀತಿಯ ಡೇಟಾವನ್ನು ಡೇಟಾ ಪ್ಯಾರಾಮೀಟರ್ನಲ್ಲಿ ಸೇರಿಸಬಹುದು. ನೀವು ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಯನ್ನು ರಚಿಸಲು ಬಯಸಿದರೆ, ಕಳುಹಿಸುವವರು/ಸ್ವೀಕರಿಸುವವರು ಮತ್ತು ಇಲ್ಲಿಗೆ ಸರಿಸಿದ ಹಣದ ಮೊತ್ತದಂತಹ ವಹಿವಾಟು ಡೇಟಾವನ್ನು ನೀವು ಇರಿಸಬಹುದು.
- ಹಿಂದಿನ ಹ್ಯಾಶ್ ಹಿಂದಿನ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ಹೊಂದಿರುವ ಸ್ಟ್ರಿಂಗ್ ಆಗಿದೆ. ಇದು ಬ್ಲಾಕ್ಗಳ ಸರಪಳಿಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ಇದು ನಂತರ ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ನ ಸಮಗ್ರತೆಯನ್ನು ಒದಗಿಸುವಲ್ಲಿ ನಿರ್ಣಾಯಕವಾಗಿರುತ್ತದೆ.
ಹ್ಯಾಶ್ಗಳನ್ನು ರಚಿಸುವುದು
ಪ್ರತಿಯೊಂದು ಬ್ಲಾಕ್ ಹಿಂದಿನ ಬ್ಲಾಕ್ಗೆ ಲಿಂಕ್ ಮಾಡುತ್ತದೆ (ಹೀಗೆ ಹಿಂದಿನ ಹ್ಯಾಶ್ ಪ್ರಾಪರ್ಟಿ). ಅಂದರೆ, ಪ್ರತಿ ಬ್ಲಾಕ್ಗೆ ಹ್ಯಾಶ್ ಅಗತ್ಯವಿದೆ. ಹ್ಯಾಶ್ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಹೋಲುತ್ತದೆ. ಪ್ರತಿ ಬ್ಲಾಕ್ಗೆ ಇದು ಪ್ರತ್ಯೇಕವಾಗಿರುತ್ತದೆ.
ಒಂದು ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ಹ್ಯಾಶ್ ಫಂಕ್ಷನ್ ಮೂಲಕ ಅದರ ಎಲ್ಲಾ ವಿಷಯಗಳನ್ನು ರವಾನಿಸುವ ಮೂಲಕ ಗಣಿಸಬಹುದು.
ಆದ್ದರಿಂದ, ಪ್ರಸ್ತುತ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸೋಣ.
ಆದ್ದರಿಂದ, ಬ್ಲಾಕ್ ವರ್ಗದ ಅಡಿಯಲ್ಲಿ, ನಾವು ಲೆಕ್ಕಾಚಾರ ಹ್ಯಾಶ್ ಕಾರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೇವೆ:
ಆದಾಗ್ಯೂ, SHA256 ಹ್ಯಾಶ್ ಅನ್ನು JavaScript ನಿಂದ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ ಮತ್ತು ಬಾಹ್ಯ ಲೈಬ್ರರಿಯಿಂದ ಪಡೆಯಬೇಕು.
Crypto-js ಹಲವಾರು ಹ್ಯಾಶ್ ಅಲ್ಗಾರಿದಮ್ಗಳ ಸುರಕ್ಷಿತ ಅಳವಡಿಕೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಅದ್ಭುತ ಪ್ಯಾಕೇಜ್ ಆಗಿದೆ.
ನಂತರ ನಾವು ಅದನ್ನು ನಮ್ಮ main.js ಕೋಡ್ಗೆ ಆಮದು ಮಾಡಿಕೊಳ್ಳಬಹುದು.
ಈಗ ನಾವು ನಮ್ಮ ಲೆಕ್ಕಾಚಾರ ಹ್ಯಾಶ್ () ಕಾರ್ಯವನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಅದನ್ನು ನಮ್ಮ ಬ್ಲಾಕ್ನ ಕಾರ್ಯದಲ್ಲಿ ಬಳಸೋಣ:
ಬ್ಲಾಕ್ ಹೇಗಿರುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸಿದ ನಂತರ, ಬ್ಲಾಕ್ಚೈನ್ ಹೇಗಿರಬೇಕು ಎಂಬುದನ್ನು ನಾವು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಆದ್ದರಿಂದ ಹೊಸ ವರ್ಗವನ್ನು ರಚಿಸೋಣ.
ಈ ಸನ್ನಿವೇಶದಲ್ಲಿ, ಬ್ಲಾಕ್ಚೈನ್ ಆಸ್ತಿ ಸರಪಳಿಯನ್ನು ಹೊಂದಿರುವ ಅತ್ಯಂತ ಸರಳವಾದ ವಸ್ತುವಾಗಿದೆ. ಇದು ಸರಪಳಿಯ ಮೇಲಿನ ಎಲ್ಲಾ ಬ್ಲಾಕ್ಗಳನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಒಂದು ಶ್ರೇಣಿಯಾಗಿದೆ.
ನಾವು ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸುವ ಮೊದಲು, ನಾವು ಮೊದಲು "ಜೆನೆಸಿಸ್ ಬ್ಲಾಕ್" ಎಂದು ಕರೆಯಲ್ಪಡುವದನ್ನು ರಚಿಸಬೇಕು. ಇದು ಸರಪಳಿಯಲ್ಲಿನ ಮೊದಲ ಬ್ಲಾಕ್ ಆಗಿದೆ, ಮತ್ತು ಇದು ಮೊದಲಿನ ಬ್ಲಾಕ್ ಅನ್ನು ಸೂಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ (ಇದು ಮೊದಲನೆಯದು!) ವಿಶಿಷ್ಟವಾಗಿದೆ.
ಆದ್ದರಿಂದ, ಜೆನೆಸಿಸ್ ಬ್ಲಾಕ್ ಅನ್ನು ನಿರ್ಮಿಸಲು, ನಾನು ನಮ್ಮ ವರ್ಗಕ್ಕೆ createGenesisBlock () ಹೆಸರಿನ ಕಾರ್ಯವನ್ನು ಸೇರಿಸುತ್ತೇನೆ. ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ವರ್ಗದ ಆಬ್ಜೆಕ್ಟ್() { [ಸ್ಥಳೀಯ ಕೋಡ್] } ಕಾರ್ಯದಲ್ಲಿ ಹಿಂತಿರುಗಿ.
ನಾವು ಹೊಸ ಬ್ಲಾಕ್ಚೈನ್ ನಿದರ್ಶನವನ್ನು ನಿರ್ಮಿಸಿದಾಗ ನಾವು ಈಗ ಜೆನೆಸಿಸ್ ಬ್ಲಾಕ್ ಅನ್ನು ಸೇರಿಸಬಹುದು:
ಬ್ಲಾಕ್ಚೈನ್ ವಿಧಾನಗಳು
ಈಗ, ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ಕ್ಲಾಸ್ಗೆ ವಿಧಾನಗಳನ್ನು ಸೇರಿಸೋಣ ಅದು ಹೊಸ ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸುವುದು ಮತ್ತು ಇತ್ತೀಚಿನ ಬ್ಲಾಕ್ ಅನ್ನು ಪಡೆಯುವಂತಹ ಕೆಲಸಗಳನ್ನು ಮಾಡಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
getLatestBlock ಕಾರ್ಯವು ಅತ್ಯಂತ ಮೂಲಭೂತವಾಗಿದೆ. ಇದು ಸರಣಿ ರಚನೆಯ ಅಂತಿಮ ಸದಸ್ಯರನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ:
ಆಡ್ಬ್ಲಾಕ್ ತಂತ್ರವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಒಳಗೊಂಡಿರುತ್ತದೆ.
ನಾವು ನಮ್ಮ ಸರಪಳಿಗೆ ಹೊಸ ಬ್ಲಾಕ್ ಅನ್ನು ಸೇರಿಸುವ ಮೊದಲು, ನಾವು ಮೊದಲು ಆ ಬ್ಲಾಕ್ನ ಹಿಂದಿನ ಹ್ಯಾಶ್ ಕ್ಷೇತ್ರವನ್ನು ಸೂಕ್ತವಾಗಿ ಹೊಂದಿಸಬೇಕು.
ನಮ್ಮ ಸರಪಳಿಗೆ ಇತ್ತೀಚೆಗೆ ಸೇರಿಸಲಾದ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ಗೆ ಇದನ್ನು ಹೊಂದಿಸಬೇಕು. ನಾವು ಹೊಸ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ಸಹ ಲೆಕ್ಕಾಚಾರ ಮಾಡಬೇಕಾಗಿದೆ:
ಪರೀಕ್ಷೆ
ನಮ್ಮ MelodyCoin ಹೇಗೆ ಹೊರಬಂದಿದೆ ಎಂದು ನೋಡೋಣ.
ಇದನ್ನು ಸಾಧಿಸಲು ಬ್ಲಾಕ್ಚೈನ್ ನಿದರ್ಶನವನ್ನು ರಚಿಸಿ. ಇನ್ನೂ ಒಂದೆರಡು ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸೋಣ:
ನಾವು ಅಲ್ಲಿ ಎರಡು ಹೊಸ ಬ್ಲಾಕ್ಗಳನ್ನು ಮಾಡಿದ್ದೇವೆ. ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ಪ್ರಸ್ತುತ ಹೇಗಿದೆ ಎಂಬುದನ್ನು ನೋಡೋಣ.
MelodyCoin ಅನ್ನು ನಾಲ್ಕು ಸ್ಥಳಗಳೊಂದಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಮಾಡಲಾಗುವುದು ಮತ್ತು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾಗುತ್ತದೆ:
ಬ್ಲಾಕ್ಚೈನ್ನ ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸಿ
ಬ್ಲಾಕ್ಚೈನ್ಗಳು ಅದ್ಭುತವಾಗಿದೆ ಏಕೆಂದರೆ ಒಮ್ಮೆ ಬ್ಲಾಕ್ ಅನ್ನು ಸೇರಿಸಿದರೆ, ಸರಪಳಿಯ ಉಳಿದ ಭಾಗವನ್ನು ಅಮಾನ್ಯಗೊಳಿಸದೆ ಅದನ್ನು ಮಾರ್ಪಡಿಸಲಾಗುವುದಿಲ್ಲ.
ಆದಾಗ್ಯೂ, ಈ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ನ ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ನನಗೆ ಯಾವುದೇ ವಿಧಾನವಿಲ್ಲ.
ನಮ್ಮ blockchain ಗೆ isChainValid ಕಾರ್ಯವನ್ನು ಪರಿಚಯಿಸೋಣ. ಸರಪಳಿಯು ನ್ಯಾಯಸಮ್ಮತವಾಗಿದ್ದರೆ, ಅದು ನಿಜವಾಗುತ್ತದೆ; ಇಲ್ಲದಿದ್ದರೆ, ಅದು ತಪ್ಪಾಗಿ ಹಿಂತಿರುಗುತ್ತದೆ:
ಸಮಗ್ರತೆಯನ್ನು ಪರೀಕ್ಷಿಸುವುದು
ನಾವು ಈಗ ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ನ ಸಮಗ್ರತೆಯನ್ನು ಪರೀಕ್ಷೆಗೆ ಒಳಪಡಿಸಬಹುದು. ನಾವು ಈಗ ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದರೆ, ಅದು ನಮ್ಮ ಸರಪಳಿ ಅಸಲಿ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಈಗ ನಾವು ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ಅನ್ನು ಟ್ಯಾಂಪರ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸೋಣ. ಬ್ಲಾಕ್ 2 ಅನ್ನು ಬದಲಾಯಿಸೋಣ ಮತ್ತು ಅದರ ವಿಷಯಗಳನ್ನು ಮೇಲ್ಬರಹ ಮಾಡೋಣ (ನಾವು ನಾಲ್ಕು ನಾಣ್ಯಗಳ ಬದಲಿಗೆ 100 ನಾಣ್ಯಗಳನ್ನು ವರ್ಗಾಯಿಸಿದ್ದೇವೆ ಎಂದು ಭಾವಿಸೋಣ).
ನಾವು ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ, ಸರಪಳಿಯನ್ನು ಹಾಳುಮಾಡುವ ನಮ್ಮ ಪ್ರಯತ್ನವನ್ನು ಸಾಫ್ಟ್ವೇರ್ ಗುರುತಿಸುವುದನ್ನು ನಾವು ನೋಡಬಹುದು.
ಆದಾಗ್ಯೂ, ಇದರೊಂದಿಗೆ ಮಧ್ಯಪ್ರವೇಶಿಸಲು ನನಗೆ ಇನ್ನೊಂದು ವಿಧಾನವಿದೆ ಎಂದು ನೀವು ನಂಬಬಹುದು. ನಾನು ಬ್ಲಾಕ್ನಲ್ಲಿರುವ ವಿಷಯಗಳನ್ನು ಬದಲಾಯಿಸಿದ್ದೇನೆ ಆದರೆ ಹ್ಯಾಶ್ ಅನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಿಲ್ಲ. ಆದ್ದರಿಂದ ನೀವು ಬುದ್ಧಿವಂತರಾಗಿರಲು ಪ್ರಯತ್ನಿಸಬಹುದು ಮತ್ತು ಅದೇ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಅನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು.
ನಮ್ಮ ಚಿಕ್ಕ ಬ್ಲಾಕ್ಚೈನ್ ಸೆಟಪ್ನಲ್ಲಿ ಅಷ್ಟೆ! ಇದು ಹೊಸ ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಸರಪಳಿಯಲ್ಲಿನ ಡೇಟಾದೊಂದಿಗೆ ಟ್ಯಾಂಪರಿಂಗ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ನಮ್ಮ ಸಣ್ಣ ಬ್ಲಾಕ್ಚೈನ್ನಲ್ಲಿ ನಾವು ಪರಿಹರಿಸಬೇಕಾದ ಎರಡು ಸಮಸ್ಯೆಗಳಿವೆ:
- ಆಧುನಿಕ ಕಂಪ್ಯೂಟರ್ಗಳು ಅತ್ಯಂತ ವೇಗವಾಗಿರುತ್ತವೆ ಮತ್ತು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಮ್ಮ ಸರಪಳಿಗೆ ಸಾವಿರಾರು ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸಬಹುದು. ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ಅನ್ನು ಯಾರಾದರೂ ಸ್ಪ್ಯಾಮ್ ಮಾಡುವುದನ್ನು ನಾವು ಬಯಸುವುದಿಲ್ಲ.
- ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ಇನ್ನೂ ಟ್ಯಾಂಪರಿಂಗ್ಗೆ ಗುರಿಯಾಗುತ್ತದೆ. ನೀವು ಬ್ಲಾಕ್ನ ವಿಷಯಗಳನ್ನು ನವೀಕರಿಸಬಹುದು ಮತ್ತು ನಂತರ ಎಲ್ಲಾ ಕೆಳಗಿನ ಬ್ಲಾಕ್ಗಳಿಗೆ ಹ್ಯಾಶ್ಗಳನ್ನು (ಮತ್ತು ಹಿಂದಿನ ಹ್ಯಾಶ್ಗಳು) ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬಹುದು. ನೀವು ಅದರೊಂದಿಗೆ ಗೊಂದಲಕ್ಕೀಡಾಗಿದ್ದರೂ ಸಹ, ನೀವು ಕಾನೂನುಬದ್ಧ ಸರಪಳಿಯೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುವಿರಿ.
ಈ ಕಾಳಜಿಗಳನ್ನು ಪರಿಹರಿಸಲು, ಬ್ಲಾಕ್ಚೈನ್ಗಳು "ಕೆಲಸದ ಪುರಾವೆ" ಎಂದು ಕರೆಯಲ್ಪಡುವ ತಂತ್ರವನ್ನು ಬಳಸುತ್ತವೆ. ಈ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಬ್ಲಾಕ್ ಅನ್ನು ರಚಿಸಲು ನೀವು ಗಮನಾರ್ಹ ಪ್ರಮಾಣದ ಕಂಪ್ಯೂಟೇಶನಲ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸಿದ್ದೀರಿ ಎಂದು ನೀವು ಪ್ರದರ್ಶಿಸಬೇಕು. ಇದನ್ನು ಎಂದೂ ಕರೆಯುತ್ತಾರೆ ಗಣಿಗಾರಿಕೆ.
ಕೆಲಸದ ಪುರಾವೆಗೆ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ನಿರ್ದಿಷ್ಟ ಪ್ರಮಾಣದ ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುವ ಅಗತ್ಯವಿದೆ. ಆದರೆ ನಿಮ್ಮ ಹ್ಯಾಶ್ ಈ ನಿಯಮಕ್ಕೆ ಸರಿಹೊಂದುತ್ತದೆಯೇ ಎಂದು ನೀವು ಹೇಗೆ ತಿಳಿಯಬಹುದು?
ಬ್ಲಾಕ್ನ ವಿಷಯಗಳು ಅದರ ಹ್ಯಾಶ್ ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತವೆ. ಆದ್ದರಿಂದ ನಾವು ಯಾವಾಗಲೂ ಒಂದೇ ಹ್ಯಾಶ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ, ನಾವು ವಿಷಯಗಳನ್ನು ಮಾರ್ಪಡಿಸದಿದ್ದಲ್ಲಿ.
ಪ್ರತಿ ಬ್ಲಾಕ್ಗೆ ಪರಿಹಾರವಾಗಿ ಸೇರಿಸದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರಬೇಕು. ಇದು ಮೂಲಭೂತವಾಗಿ ಕೆಲವು ಯಾದೃಚ್ಛಿಕ ಡೇಟಾವಾಗಿದ್ದು, ನಮ್ಮ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಸಾಕಷ್ಟು ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುವವರೆಗೆ ನಾವು ನವೀಕರಿಸಬಹುದು. ನೀವು ಹ್ಯಾಶ್ ಫಂಕ್ಷನ್ನ ಔಟ್ಪುಟ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲದ ಕಾರಣ, ನೀವು ಹಲವಾರು ವಿಭಿನ್ನ ಸಂಯೋಜನೆಗಳನ್ನು ಪರೀಕ್ಷಿಸಬೇಕು ಮತ್ತು ಉತ್ತಮವಾದುದನ್ನು ನಿರೀಕ್ಷಿಸಬೇಕು.
ಬ್ಲಾಕ್ಚೈನ್ಗೆ ಗಣಿಗಾರಿಕೆಯನ್ನು ಪರಿಚಯಿಸಿ
ನಮ್ಮ ಬ್ಲಾಕ್ ವರ್ಗದಲ್ಲಿ ನಾನ್ಸ್ ಅನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸೋಣ. ನಾನ್ಸ್ ಎಂಬುದು ನಮ್ಮ ಬ್ಲಾಕ್ನಲ್ಲಿನ ಏಕೈಕ ಮೌಲ್ಯವಾಗಿದ್ದು, ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಲು ನಾವು ಮಾರ್ಪಡಿಸಬಹುದು.
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅಥವಾ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಲು ನಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.
ಮುಂದೆ, ಬ್ಲಾಕ್ನ ನಿಜವಾದ ಗಣಿಗಾರಿಕೆಯನ್ನು ಮಾಡುವ ಮೈನ್ಬ್ಲಾಕ್ () ಕಾರ್ಯವನ್ನು ಬರೆಯೋಣ. ಈ ಕಾರ್ಯವನ್ನು ಪ್ಯಾರಾಮೀಟರ್ನಂತೆ ಅಗತ್ಯವಿರುವ ತೊಂದರೆಯನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಮ್ಮ ಬ್ಲಾಕ್ನ ಹ್ಯಾಶ್ ಸಾಕಷ್ಟು ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುವವರೆಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.
ನಾನು ಮೂಲ ಲೂಪ್ ಅನ್ನು ಮಾಡಿದ್ದೇನೆ ಅದು ನಮ್ಮ ಹ್ಯಾಶ್ ಸಾಕಷ್ಟು ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುವವರೆಗೆ ರನ್ ಆಗುತ್ತದೆ. ಎಷ್ಟು ಸೊನ್ನೆಗಳು ಬೇಕು ಎಂದು ನಿರ್ಧರಿಸಲು ನಾವು ಕಷ್ಟವನ್ನು ಬಳಸುತ್ತೇವೆ. 5 ರ ತೊಂದರೆಯೊಂದಿಗೆ, ನಮ್ಮ ಹ್ಯಾಶ್ 5 ಸೊನ್ನೆಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗಬೇಕು.
ನಮ್ಮ ಹ್ಯಾಶ್ ಸಾಕಷ್ಟು ಸೊನ್ನೆಗಳನ್ನು ಹೊಂದಿರದಿದ್ದಾಗ, ನಾವು ನಾನ್ಸ್ ಅನ್ನು ಒಂದರಿಂದ ಹೆಚ್ಚಿಸುತ್ತೇವೆ ಮತ್ತು ಹ್ಯಾಶ್ ಅನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತೇವೆ. ಮತ್ತು ತೊಂದರೆಗೆ ಅನುಗುಣವಾದ ಹ್ಯಾಶ್ ಅನ್ನು ನಾವು ಕಂಡುಕೊಂಡರೆ, ನಾವು ಅದನ್ನು ಕನ್ಸೋಲ್ಗೆ ಲಾಗ್ ಮಾಡುತ್ತೇವೆ.
ನಾವು ಮಾಡಬೇಕಾದ ಇನ್ನೊಂದು ವಿಷಯವಿದೆ. ನಮ್ಮ ಲೆಕ್ಕಾಚಾರ ಹ್ಯಾಶ್ ವಿಧಾನದಲ್ಲಿ ನಾವು ನಿಜವಾಗಿಯೂ ನಾನ್ಸ್ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಅದು ಇಲ್ಲಿದೆ:
ಬ್ಲಾಕ್ಚೈನ್ ವರ್ಗ
ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ ತರಗತಿಯಲ್ಲಿ ಈ ಹೊಸ ವಿಧಾನವನ್ನು ಪರೀಕ್ಷೆಗೆ ಒಳಪಡಿಸೋಣ ಮತ್ತು ಅದು ಹೇಗೆ ನಡೆಯುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡೋಣ.
ಪ್ರಾರಂಭಿಸಲು, ಆಬ್ಜೆಕ್ಟ್() ಕಾರ್ಯದಲ್ಲಿ ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ನ ತೊಂದರೆಯನ್ನು ನಾನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೇನೆ. ನಾವು ಅದನ್ನು ಇಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತೇವೆ ಏಕೆಂದರೆ ನಾವು ಅದನ್ನು ನಂತರ ಎಲ್ಲೋ ಬಳಸಬಹುದು.
ಆಡ್ಬ್ಲಾಕ್ ಕಾರ್ಯವನ್ನು ನಂತರ ಮಾರ್ಪಡಿಸಬೇಕು ಅಂದರೆ ಅದು ನಮ್ಮ ಸರಪಳಿಗೆ ಸೇರಿಸುವ ಮೊದಲು ಬ್ಲಾಕ್ ಅನ್ನು ಗಣಿಗಾರಿಕೆ ಮಾಡುತ್ತದೆ.
ಬ್ಲಾಕ್ಚೈನ್ ಬಳಸಿ
ಈಗ, ಪುರಾವೆ-ಆಫ್-ವರ್ಕ್ ಅಲ್ಗಾರಿದಮ್ನೊಂದಿಗೆ ಬಳಸಲು ನಮ್ಮ ಹೊಸ ಬ್ಲಾಕ್ಚೈನ್ ಅನ್ನು ಹಾಕೋಣ. ಇಲ್ಲಿ, ಒಂದೆರಡು console.log ಹೇಳಿಕೆಗಳನ್ನು ಸೇರಿಸಿ.
ನಾವು ಈ ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ, ಗಣಿಗಾರಿಕೆ ಪ್ರಕ್ರಿಯೆಯು ಇನ್ನು ಮುಂದೆ ನಿರ್ದಿಷ್ಟವಾಗಿ ವೇಗವಾಗಿಲ್ಲ ಎಂದು ನಾವು ಗಮನಿಸಬಹುದು.
ಮೂರು ಸೊನ್ನೆಗಳೊಂದಿಗೆ (ತೊಂದರೆಯಿಂದ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದಂತೆ) ಪ್ರಾರಂಭವಾಗುವ ಹ್ಯಾಶ್ಗಳೊಂದಿಗೆ ಬ್ಲಾಕ್ಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಅಲ್ಗಾರಿದಮ್ಗೆ ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಆದ್ದರಿಂದ ಅದು ನಮ್ಮ ಮೂಲಭೂತ ಬ್ಲಾಕ್ಚೈನ್ ಸೆಟಪ್ನ ಅಂತ್ಯವಾಗಿತ್ತು.
ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ಧನ್ಯವಾದಗಳು ನಮ್ಮ ಬ್ಲಾಕ್ಚೈನ್ಗೆ ಎಷ್ಟು ಬೇಗನೆ ಹೊಸ ಬ್ಲಾಕ್ಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ನಿಯಂತ್ರಿಸಬಹುದು.
ಬ್ಲಾಕ್ಚೈನ್ಗಳಲ್ಲಿ ಇದು ಅತ್ಯಂತ ಮಹತ್ವದ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ. ಮತ್ತು ಈಗ ಅದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೀರಿ, ನಿಮ್ಮದೇ ಆದದನ್ನು ರಚಿಸಲು ಪ್ರಾರಂಭಿಸಿ!
ಪ್ರತ್ಯುತ್ತರ ನೀಡಿ