āĻā§āĻ āĻāĻ¯āĻŧā§, āĻšāĻžāĻ¤ āĻā§āĻ˛āĻāĻžāĻ¯āĻŧ!
āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻā§āĻ˛āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ (
āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ - āĻāĻāĻ¨āĻŋāĻāĻžāĻ°ā§āĻ¸āĻžāĻ˛ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻšāĻ˛:
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻ° āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§;
- āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸;
- āĻĄāĻŋāĻāĻžāĻāĻ¸/āĻ˛ā§āĻāĻĻā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ;
- āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻžāĻ˛ āĻāĻŦāĻ āĻāĻ°ā§āĻāĻžāĻāĻāĻžāĻ˛ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž:
āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻā§ āĻ¤āĻžāĻ° āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻĒāĻĄāĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°
āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻ¸āĻāĻāĻ āĻ¨ â āĻ¸āĻāĻāĻ āĻ¨ā§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻĨāĻžāĻā§, āĻ¯ā§āĻŽāĻ¨ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨āĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻāĻāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻ
āĻāĻļ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ â āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻāĻžāĻ āĻžāĻŽā§ āĻ¯āĻž āĻ¸āĻŽāĻŦāĻ¯āĻŧāĻ¸ā§āĻĻā§āĻ° āĻĻāĻ˛ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻāĻā§āĨ¤ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻš āĻāĻāĻžāĻ§āĻŋāĻ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĒāĻĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ (MSP) āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻŦāĻ āĻā§āĻŽāĻŋāĻāĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻ¨ CA (āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻ°ā§āĻ¤ā§āĻĒāĻā§āĻˇ)āĨ¤ āĻāĻāĻāĻŋ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ MSP āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻ¨ā§āĻĄ â āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨, āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨, āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ (āĻĄāĻŋāĻāĻŋāĻāĻžāĻ˛ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°), āĻ¯āĻž MSP āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻāĻāĻ¯āĻŧā§āĻ¨ āĻŦāĻž āĻāĻĨā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŽ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻĄā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§, āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ°ā§ āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāĻ˛āĻ¨ āĻāĻ°ā§:
- āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻšāĻ¯āĻŧāĻ¤ā§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ (EP) āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
- āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§ (CP) - āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ "āĻŦāĻŋāĻļā§āĻŦ āĻ°āĻžāĻˇā§āĻā§āĻ°" āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
- āĻ
ā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ° (āĻāĻĒāĻŋ) - āĻ¯āĻĻāĻŋ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻā§āĻāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ AP-āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻŦāĻ¯āĻŧāĻ¸ā§āĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ AP-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ¸āĻŋāĻĒ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ . - āĻ¨ā§āĻ¤āĻž āĻĒā§āĻ° â āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻšāĻāĻ°ā§āĻŽā§ āĻĨāĻžāĻā§, āĻ¤āĻŦā§ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻŋāĻ¯āĻŧāĻžāĻ°ā§āĻ° āĻ¨ā§āĻ¤āĻž āĻ āĻ°ā§āĻĄāĻžāĻ°āĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĨā§āĻā§ āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĒāĻžāĻŦā§āĻ¨ āĻāĻŦāĻ āĻŦāĻžāĻāĻŋ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ°āĻā§ āĻĻā§āĻŦā§āĻ¨ā§ˇ āĻ¨ā§āĻ¤āĻžāĻā§ āĻšāĻ¯āĻŧ āĻ¸ā§āĻĨāĻŋāĻ°āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŦāĻž āĻ¸āĻāĻāĻ āĻ¨ā§āĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¸āĻŋāĻĒ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻāĻŋ āĻ¨ā§āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻ¤ā§āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻŽā§āĻĒāĻĻ â āĻŽāĻžāĻ¨āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¯āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻĨāĻžāĻā§āĨ¤ āĻāĻ°āĻ āĻ¸ā§āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻāĻāĻžāĻŦā§, āĻāĻāĻŋ JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻā§-āĻŽāĻžāĻ¨ā§āĻ° āĻĄā§āĻāĻžāĨ¤ āĻāĻ āĻĄā§āĻāĻžāĻ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻšāĻžāĻ¸ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¯āĻž "āĻŦāĻŋāĻļā§āĻŦ āĻ°āĻžāĻˇā§āĻā§āĻ°" āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻāĻžāĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¨ā§āĻ, āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻšāĻ˛ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŽāĻžāĻ˛āĻŋāĻ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ¤āĻŋāĻ¯āĻŧāĻžāĻ¨ â āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻāĻŦāĻ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻā§āĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤, āĻ¯āĻž āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻŦāĻŋāĻļā§āĻŦ āĻ°āĻžāĻˇā§āĻā§āĻ° āĻ˛ā§āĻā§āĻ˛āĻĄāĻŋāĻŦāĻŋ āĻŦāĻž āĻāĻžāĻāĻāĻĄāĻŋāĻŦāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ â āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻā§, āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻāĻ¨āĻā§āĻĄ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻāĻ¨āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻ¸āĻŽā§āĻĒāĻĻ āĻāĻŦāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻāĻžāĻˇāĻžāĻ¯āĻŧ, āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻšāĻ˛ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯āĻž JS āĻŦāĻž Go āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻ¨ā§āĻ¤āĻŋ - āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻāĻ¨āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻāĻ¨ āĻāĻŦāĻ āĻāĻžāĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻ°āĻŖ āĻāĻļāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻ¤āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ¨ā§āĻ¤āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšāĻ˛: "āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸āĻĻāĻ¸ā§āĻ¯ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§"āĨ¤ āĻ¨ā§āĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
- āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§;
- āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻ¸āĻĻāĻ¸ā§āĻ¯ āĻŦāĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ;
- āĻ¯ā§āĻā§āĻ¨ā§ āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻ¸ā§āĻŦāĻž â āĻŦā§āĻ˛āĻā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĒā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻšā§āĻ° āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ āĻļāĻŋāĻ˛ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤
āĻāĻ˛ āĻĒā§āĻ°āĻŦāĻžāĻš
- āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ Go, Node.js āĻŦāĻž Java SDK āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§;
- āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ tx āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻāĻžāĻ°ā§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ;
- āĻĒāĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§, āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻžāĻā§ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻĢā§āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻā§āĻāĻ¨āĻā§āĻĄ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨āĻāĻžāĻ°ā§ āĻĒāĻŋāĻ¯āĻŧāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻžāĻā§āĻ° āĻāĻ āĻ
ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§ PBFT (āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻŦāĻžāĻāĻā§āĻ¨ā§āĻāĻžāĻāĻ¨ āĻĢāĻ˛ā§āĻ āĻāĻ˛āĻžāĻ°ā§āĻ¨ā§āĻ) āĻāĻā§āĻ¯āĻŽāĻ¤ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĨā§āĻā§ āĻĒā§āĻĨāĻ
āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ BFT āĻ¸āĻ¤ā§āĻ¯ āĻ¯ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻ°āĻŖ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ¨āĻ¯āĻŧ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤; - āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻ¨āĻĄā§āĻ°ā§āĻ¸āĻŽā§āĻ¨ā§āĻ āĻ¨ā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻāĻāĻŋ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ;
- āĻ
āĻ°ā§āĻĄāĻžāĻ°āĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ
āĻ°ā§āĻĄāĻžāĻ°āĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻ˛āĻāĻā§āĻ˛āĻŋāĻ° āĻā§āĻ°āĻŽāĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§, āĻ¯āĻž āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ˛ā§āĻāĻžāĻ° āĻĢāĻ°ā§āĻ (
āĻŦāĻŋāĻāĻžāĻ "āĻāĻžāĻāĻāĻžāĻāĻžāĻŽāĻ" āĻĻā§āĻā§āĻ¨ ); - āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻ°āĻž āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻĒāĻžāĻ¨, āĻāĻŦāĻžāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻ¨ā§āĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨, āĻŦā§āĻ˛āĻāĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ˛āĻŋāĻā§āĻ¨ āĻāĻŦāĻ "āĻŦāĻŋāĻļā§āĻŦ āĻ°āĻžāĻˇā§āĻā§āĻ°" DB-āĻ¤ā§ āĻ°āĻžāĻˇā§āĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¸ā§āĻā§āĻ˛ā§. āĻāĻ° āĻĢāĻ˛ā§ āĻ¨ā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻŽāĻŋāĻāĻžāĻ° āĻŦāĻŋāĻāĻžāĻāĻ¨ āĻāĻā§āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛āĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤:
- āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ (āĻā§āĻāĻ¨āĻā§āĻĄ) āĻ¸āĻŽāĻŦāĻ¯āĻŧāĻ¸ā§āĻĻā§āĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŽāĻŦāĻ¯āĻŧāĻ¸ā§āĻĻā§āĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤
- āĻ āĻ°ā§āĻĄāĻžāĻ° āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤. āĻāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻ āĻ°ā§āĻĄāĻžāĻ°āĻŋāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ˛āĻŋāĻĄāĻžāĻ° āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻā§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤
- āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ¸āĻšāĻāĻ°ā§āĻŽā§āĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§ - āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻļāĻā§āĻ¤āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ¤ā§āĻā§āĻˇāĻŖāĻŋāĻ āĻāĻžāĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻā§āĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°āĻžāĻ˛ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻāĻŋ āĻāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¨āĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§:
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻ āĻ¸āĻžāĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨;
- JSON āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻŦāĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨;
- āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻ āĻĨāĻ°āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ API āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻŽāĻā§āĻā§āĻ° āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻā§āĻ° āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻā§āĻāĻž āĻŦā§āĻāĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋ, āĻāĻ¸ā§āĻ¨ āĻ āĻŦāĻļā§āĻˇā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻā§ āĻāĻ°āĻž āĻ¯āĻžāĻ!
āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻ āĻ¨
āĻāĻžāĻāĻāĻŋ āĻšāĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ Citcoin āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž: āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸ āĻĒāĻžāĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻāĻŋ āĻāĻĒ āĻāĻĒ āĻāĻ°ā§āĻ¨, āĻāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§ āĻāĻ¯āĻŧā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻŽāĻĄā§āĻ˛ āĻāĻāĻā§āĻ¨, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŦāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻŽāĻ¨ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨāĻžāĻāĻŦā§ āĻ¯āĻž āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ¤ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨāĻžāĻā§āĨ¤ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻˇāĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻšāĻžāĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĻāĻžāĻŦā§ āĻāĻāĻāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦ:
āĻļā§āĻ°ā§āĻˇ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻšāĻ˛ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ
āĻŦāĻ¸ā§āĻĨāĻž, āĻ¯āĻž "āĻŦāĻŋāĻļā§āĻŦ āĻ°āĻžāĻˇā§āĻā§āĻ°" āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¨ā§āĻā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻ¤āĻŋāĻšāĻžāĻ¸ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ
āĻŦāĻ¸ā§āĻĨāĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻ¸āĻŽā§āĻĒāĻĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻĢāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ āĻāĻ¤āĻŋāĻšāĻžāĻ¸ā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻŦāĻŋāĻāĻŽ āĻā§āĻ˛āĻžāĻāĻĄ
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ
āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°ā§āĻ¨ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻĨā§āĻā§ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻāĻ¤ āĻāĻ°ā§āĻ¨
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻāĻŦāĻŋāĻāĻŽ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻāĻžāĻā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
āĻāĻŽāĻ°āĻž āĻāĻ¤ā§ āĻ¨ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ: Orderer CA, Org1 CA, Orderer Peer:
āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ:
āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻ¸āĻŋāĻāĻāĻ¯āĻŧā§āĻ¨ āĻŦāĻ˛ā§āĻ¨:
āĻŽā§āĻ˛āĻ¤ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻŦā§āĻ˛āĻ āĻāĻŋāĻ°ā§ (āĻā§āĻ¨ā§āĻ¸āĻŋāĻ¸ āĻŦā§āĻ˛āĻ) āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ:
āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ˛ā§āĻāĻž
/*
* Citcoin smart-contract v1.5 for Hyperledger Fabric
* (c) Alexey Sushkov, 2019
*/
'use strict';
const { Contract } = require('fabric-contract-api');
const maxAccounts = 5;
class CitcoinEvents extends Contract {
async instantiate(ctx) {
console.info('instantiate');
let emptyList = [];
await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(emptyList)));
}
// Get all accounts
async GetAccounts(ctx) {
// Get account list:
let accounts = '{}'
let accountsData = await ctx.stub.getState('accounts');
if (accountsData) {
accounts = JSON.parse(accountsData.toString());
} else {
throw new Error('accounts not found');
}
return accountsData.toString()
}
// add a account object to the blockchain state identifited by their name
async AddAccount(ctx, name, balance) {
// this is account data:
let account = {
name: name,
balance: Number(balance),
type: 'account',
};
// create account:
await ctx.stub.putState(name, Buffer.from(JSON.stringify(account)));
// Add account to list:
let accountsData = await ctx.stub.getState('accounts');
if (accountsData) {
let accounts = JSON.parse(accountsData.toString());
if (accounts.length < maxAccounts)
{
accounts.push(name);
await ctx.stub.putState('accounts', Buffer.from(JSON.stringify(accounts)));
} else {
throw new Error('Max accounts number reached');
}
} else {
throw new Error('accounts not found');
}
// return object
return JSON.stringify(account);
}
// Sends money from Account to Account
async SendFrom(ctx, fromAccount, toAccount, value) {
// get Account from
let fromData = await ctx.stub.getState(fromAccount);
let from;
if (fromData) {
from = JSON.parse(fromData.toString());
if (from.type !== 'account') {
throw new Error('wrong from type');
}
} else {
throw new Error('Accout from not found');
}
// get Account to
let toData = await ctx.stub.getState(toAccount);
let to;
if (toData) {
to = JSON.parse(toData.toString());
if (to.type !== 'account') {
throw new Error('wrong to type');
}
} else {
throw new Error('Accout to not found');
}
// update the balances
if ((from.balance - Number(value)) >= 0 ) {
from.balance -= Number(value);
to.balance += Number(value);
} else {
throw new Error('From Account: not enought balance');
}
await ctx.stub.putState(from.name, Buffer.from(JSON.stringify(from)));
await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
// define and set Event
let Event = {
type: "SendFrom",
from: from.name,
to: to.name,
balanceFrom: from.balance,
balanceTo: to.balance,
value: value
};
await ctx.stub.setEvent('SendFrom', Buffer.from(JSON.stringify(Event)));
// return to object
return JSON.stringify(from);
}
// get the state from key
async GetState(ctx, key) {
let data = await ctx.stub.getState(key);
let jsonData = JSON.parse(data.toString());
return JSON.stringify(jsonData);
}
// GetBalance
async GetBalance(ctx, accountName) {
let data = await ctx.stub.getState(accountName);
let jsonData = JSON.parse(data.toString());
return JSON.stringify(jsonData);
}
// Refill own balance
async RefillBalance(ctx, toAccount, value) {
// get Account to
let toData = await ctx.stub.getState(toAccount);
let to;
if (toData) {
to = JSON.parse(toData.toString());
if (to.type !== 'account') {
throw new Error('wrong to type');
}
} else {
throw new Error('Accout to not found');
}
// update the balance
to.balance += Number(value);
await ctx.stub.putState(to.name, Buffer.from(JSON.stringify(to)));
// define and set Event
let Event = {
type: "RefillBalance",
to: to.name,
balanceTo: to.balance,
value: value
};
await ctx.stub.setEvent('RefillBalance', Buffer.from(JSON.stringify(Event)));
// return to object
return JSON.stringify(from);
}
}
module.exports = CitcoinEvents;
āĻ¸ā§āĻŦāĻā§āĻāĻžāĻ¤āĻāĻžāĻŦā§, āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤:
- āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĢāĻžāĻāĻļāĻ¨ (AddAccount, GetAccounts, SendFrom, GetBalance, RefillBalance) āĻāĻā§ āĻ¯ā§āĻā§āĻ˛ā§ āĻĄā§āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻĒāĻŋāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ˛ āĻāĻ°āĻŦā§āĨ¤
- SendFrom āĻāĻŦāĻ RefillBalance āĻĢāĻžāĻāĻļāĻ¨ āĻāĻā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¯āĻž āĻĄā§āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻĒāĻžāĻŦā§āĨ¤
- āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻāĻŦāĻžāĻ° āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻŦāĻžāĻ° āĻ¨āĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ°āĻžāĻĒ āĻ§āĻžāĻ°āĻŖāĻž, āĻāĻžāĻ°āĻŖ āĻāĻāĻ¨, āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦ, āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻšāĻžāĻ°āĻžāĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻž āĻ āĻŋāĻ āĻāĻā§, āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻļāĻŋāĻāĻāĻŋ)āĨ¤
- āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻšāĻ˛ JSON āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻžāĻāĻāĻžāĻ°āĨ¤ JS āĻĄā§āĻāĻž āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻāĻĒāĻ¨āĻŋ getState āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŦāĻ putState āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
- āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, AddAccount āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ (maxAccounts = 5)āĨ¤ āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻŽ āĻ°āĻ¯āĻŧā§āĻā§ (āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻā§āĻ¨?), āĻ¯āĻž āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻ āĻŦāĻŋāĻ°āĻžāĻŽ āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ˛ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻāĻ˛āĻ¤ā§ āĻšāĻŦā§)
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ˛ā§āĻĄ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻŋ:
āĻāĻ¸ā§āĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĻā§āĻāĻŋ:
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĻā§āĻā§āĻ¨:
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž IBM āĻā§āĻ˛āĻžāĻāĻĄā§ āĻāĻāĻāĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĒāĻžāĻāĨ¤ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻŽāĻžāĻāĻ¨ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻ āĻĻā§āĻāĻžāĻ¯āĻŧ (āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ):
Hyperledger Fabric API āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ GUI āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻā§āĻ° āĻāĻāĻāĻŋ API āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
- āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨;
- āĻ¸āĻāĻ¯ā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻĒāĻŋāĻ¯āĻŧāĻžāĻ°;
- āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻā§āĻļāĻ¨;
- āĻāĻ˛āĻŋāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨;
- āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ
āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§ āĻāĻŽāĻ°āĻž API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ˛ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻ¤ā§, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ IBM āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻžāĻāĻŋ āĻ§āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ GUI āĻ˛āĻŋāĻāĻŋ: Express.js + Vue.js + Node.jsāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻŦā§āĻ¨ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻŦāĻā§āĻ¤ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦ āĻ¯āĻž āĻāĻŽāĻŋ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§āĻāĻŋ:
- HyperledgerDemo/v1/init - āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨;
- HyperledgerDemo/v1/accounts/list - āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ¨;
- HyperledgerDemo/v1/account?name=Bob&balance=100 â āĻŦāĻŦ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨;
- HyperledgerDemo/v1/info?account=Bob â āĻŦāĻŦ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ¨;
- HyperledgerDemo/v1/transaction?from=Bob&to=Alice&volume=2 - āĻŦāĻŦ āĻĨā§āĻā§ āĻ ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ā§ āĻĻā§āĻāĻŋ āĻāĻ¯āĻŧā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨;
- HyperledgerDemo/v1/ āĻ¸āĻāĻ¯ā§āĻ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ°ā§āĻ¨ - āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš API-āĻāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
āĻ ā§āĻ¯āĻžāĻŽāĻžāĻāĻ¨ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻĄā§āĻŽā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨
āĻāĻŽāĻŋ āĻ
ā§āĻ¯āĻžāĻŽāĻžāĻāĻ¨ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°ā§āĻāĻŋ āĻāĻžāĻ°āĻŖ... IBM āĻāĻāĻ¨āĻ āĻāĻŽāĻžāĻ° āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻŋāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻĄā§āĻŽā§āĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻŦā§āĻ¨:
- āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨;
- āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻ¤āĻŦā§ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻĒā§āĻāĻā§ āĻā§āĻā§);
- āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ¨;
- āĻ ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸, āĻŦāĻŦ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŋāĻāĻāĻ¯āĻŧā§āĻ¨ āĻŽā§āĻĻā§āĻ°āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨;
- āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĻ¨ (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻžāĻ¨ā§āĻ° āĻā§āĻ¨āĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻ, āĻ¤āĻžāĻ āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸āĻāĻŋ āĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻāĻ¨āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ);
- āĻ˛āĻ āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨āĨ¤
āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻŽāĻ°āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ, āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻā§āĻ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž:
āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ:
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§āĻ°āĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĒāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸ āĻĒāĻžāĻāĨ¤ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°ā§āĻ°āĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĒāĻ āĻāĻāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¤āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§:
āĻ˛āĻā§ āĻāĻŽāĻ°āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŋ:
āĻāĻ¸āĻ˛ā§, āĻāĻāĻāĻŋ āĻĄā§āĻŽā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¸āĻā§āĻā§, āĻ¯ā§ āĻ¸āĻŦ. āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
āĻāĻŦāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž:
āĻāĻ° āĻ¸āĻžāĻĨā§, āĻāĻŽāĻ°āĻž āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŋāĻāĻāĻ¯āĻŧā§āĻ¨ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ PoC āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ¯āĻŧā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻāĻāĻ¯āĻŧā§āĻ¨āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻžāĻā§āĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ° āĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§? āĻā§āĻŦ āĻā§āĻ:
- āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤/āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻā§-āĻāĻ° āĻā§āĻ¨āĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻāĻāĻāĻŋ āĻŽā§āĻĻā§āĻ°āĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ¤āĻžāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻāĻ¨āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻš Citcoin āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻāĻŋ: āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸ āĻĒāĻžāĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨, āĻāĻ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§ āĻāĻ¯āĻŧā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨āĨ¤ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ PoC āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§ āĻāĻ°āĻ āĻšāĻ¯āĻŧā§āĻā§?
- āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§;
- āĻāĻāĻŦāĻŋāĻāĻŽ āĻŦāĻž āĻ ā§āĻ¯āĻžāĻŽāĻžāĻāĻ¨ āĻā§āĻ˛āĻžāĻāĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻļāĻŋāĻā§āĻ¨;
- JS āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻāĻŦāĻ āĻāĻŋāĻā§ āĻāĻ¯āĻŧā§āĻŦ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻļāĻŋāĻā§āĻ¨;
- āĻ¯āĻĻāĻŋ āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§ āĻ¨āĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻļāĻŋāĻā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, PostgreSQL āĻāĻ° āĻ¸āĻžāĻĨā§;
- āĻāĻŦāĻ āĻļā§āĻˇ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻ¨āĻ¯āĻŧ - āĻāĻ§ā§āĻ¨āĻŋāĻ āĻŦāĻŋāĻļā§āĻŦā§ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻā§āĻāĻžāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻā§āĻĨāĻžāĻ!)
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻāĻŋ āĻ°āĻā§āĻ āĻŦāĻŋāĻā§āĻāĻžāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ ā§āĻ° āĻĒāĻ°āĻŋāĻļā§āĻ°āĻŽ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§!
āĻāĻŋāĻāĻšāĻžāĻŦā§āĻ° āĻ¸ā§āĻ¤ā§āĻ°
āĻ¸ā§āĻ°ā§āĻ¸ āĻ˛āĻžāĻāĻŋāĻ¯āĻŧā§āĻā§
āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻ ÂĢāĻ¸āĻžāĻ°ā§āĻāĻžāĻ°Âģ â Node.js āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°
āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻ ÂĢāĻŽāĻā§āĻā§āĻ˛Âģ â Node.js āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ
āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻ ÂĢblockchain"(āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻā§āĻā§āĻ˛āĻŋ, āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻ
-āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ):
- āĻā§āĻā§āĻ¤āĻŋ â āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ
- āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ - āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻĒāĻŋāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĨ¤
- *.cds - āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻāĻāĻ˛āĻŋāĻ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ
- *.json āĻĢāĻžāĻāĻ˛ - āĻšāĻžāĻāĻĒāĻžāĻ°āĻ˛ā§āĻāĻžāĻ° āĻĢā§āĻ¯āĻžāĻŦā§āĻ°āĻŋāĻ āĻāĻĒāĻŋāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻāĻž āĻ¤ā§ āĻļā§āĻ°ā§ āĻŽāĻžāĻ¤ā§āĻ°!
āĻāĻ¤ā§āĻ¸: www.habr.com