рдЗрдВрдЯрд░рдкреНрд▓реЗрдиреЗрдЯрд░реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо - рдЯреНрд░рд┐рд╡рд┐рдпрд▓ рд╣реИрд╢ (рдкрд╣рдЪрд╛рди), рдбреАрдПрдЬреА рдмреНрд▓реЙрдХ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд░

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, IPFS рдиреЗ рдПрдХ рддреБрдЪреНрдЫ (рдкрд╣рдЪрд╛рди) рд╣реИрд╢ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ред рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реИ: InterPlanetary рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдирдпрд╛ рд╡рд┐рдХреЗрдВрджреНрд░реАрдХреГрдд рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдЭрд╛рдХрд░рдг рдиреЗрдЯрд╡рд░реНрдХ (HTTP рд╕рд░реНрд╡рд░, рд╕рд╛рдордЧреНрд░реА рд╡рд┐рддрд░рдг рдиреЗрдЯрд╡рд░реНрдХ ) рд╣реИред рдореИрдВрдиреЗ "рдЗрдВрдЯрд░рдкреНрд▓реЗрдиреЗрдЯрд░реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЖрдИрдкреАрдПрдлрдПрд╕" рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рд╢реБрд░реВ рдХреАред

рдЖрдорддреМрд░ рдкрд░, рдЬрдм рд╣реИрд╢рд┐рдВрдЧ, рдПрдХ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ , рддреЛ рдбреЗрдЯрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░реВрдк рд╕реЗ "рд╕рдВрдкреАрдбрд╝рд┐рдд" рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдЫреЛрдЯрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрд╕рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдПрдХ рддреБрдЪреНрдЫ рд╣реИрд╢ рдбреЗрдЯрд╛ рд╣реА рд╣реИред рдбреЗрдЯрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, "рд╣реИрд╢" рдХрд╛ рдЖрдХрд╛рд░ рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред


рдПрдХ рддреБрдЪреНрдЫ рд╣реИрд╢ рдбреЗрдЯрд╛: URL рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдВрдЯреЗрдВрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдореЗрдВ рд╣реИрд╢ рдХреЗ рдмрдЬрд╛рдп рдбреЗрдЯрд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдмрд╛рд▓ рдмреНрд▓реЙрдХ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк DNS рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕реАрдзреЗ рд╕рд╛рдЗрдЯ рдбреЗрдЯрд╛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддреБрдЪреНрдЫ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА (рд╕реАрдЖрдИрдбреА) рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреЛ рдПрдирдХреЛрдб рдХрд░реЗрдВред
рдЫрд╡рд┐


рдЖрдИрдбреА рд╕рдВрд░рдЪрдирд╛:


[ ][varint  CID][varint  ][varint ID ][varint  ][] 

рдЪрд▓рд┐рдП рдЕрдВрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред


[рд╣реИрд╢]


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддреБрдЪреНрдЫ рд╣реИрд╢ рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдЗрд╕реЗ HEX рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред


 " " = 0x"D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

рдпрд╣ рдЗрд╕ utf-8 рдПрдиреНрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ HEX рд╣реИред рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ utf-8 рд▓рд╛рдЗрди рд╣реИ, рдЗрд╕реЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ: 0xEFBBBF ред рдпрд╣ рдПрдХ рдмрд╛рдЗрдЯ рдЕрдиреБрдХреНрд░рдо рдорд╛рд░реНрдХрд░ (BOM) рд╣реИред


 0x"EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

[varint рд╣реИрд╢ рд▓рдВрдмрд╛рдИ]


рдЕрдм рд╣рдо "рд╣реИрд╢" рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд░ рджреЛ рд╣реЗрдХреНрд╕ рд╡рд░реНрдг рдПрдХ рдмрд╛рдЗрдЯ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ 22 рдмрд╛рдЗрдЯреНрд╕ рд▓рдВрдмрд╛ рд╣реИред рд╣реЗрдХреНрд╕ рдореЗрдВ, рдпрд╣ 0x16 рд╣реЛрдЧрд╛ред


рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 0x16 рдЬреЛрдбрд╝реЗрдВред


 0x"16 EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

[varint рд╣реИрд╢ рдЖрдИрдбреА]


рдЕрдм рд╣рдореЗрдВ рд╣реИрд╢ рдЖрдИрдбреА рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рддреБрдЪреНрдЫ рд╣реИрд╢ рдпрд╛ рдкрд╣рдЪрд╛рди 0x00 рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред


рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 0x00 рдЬреЛрдбрд╝реЗрдВред


 0x"00 16 EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдПрдХ рдорд▓реНрдЯреА-рд╣реИрд╢ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЖрдк HEX рдХреЛ Base58 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд▓реНрдЯреА-рд╣реИрд╢ рддреИрдпрд╛рд░ рд╣реИред рд▓реЗрдХрд┐рди ipfs рдЗрд╕реЗ рдХрдВрдЯреЗрдВрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ (CID) рдХреЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред


рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред


[рдкреНрд░рдХрд╛рд░ рд╕рд╛рдордЧреНрд░реА]


рдЕрдм рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдХреЛрдб рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреНрд░рдорд╢рдГ 0x55 рд╣реИред


рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 0x55 рдЬреЛрдбрд╝реЗрдВред


 0x"55 00 16 EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

[CID рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрд╕реНрдХрд░рдг]


рд╣рдо рд╕рд╛рдордЧреНрд░реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдПрдирдХреЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, 0x01 рдЬреЛрдбрд╝реЗрдВред


рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 0x01 рдЬреЛрдбрд╝реЗрдВред


 0x"01 55 00 16 EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" 

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдкрд░ рд╣реИрдВред


[рдЖрдзрд╛рд░ рдЙрдкрд╕рд░реНрдЧ]


рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рда рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдХреМрди рд╕рд╛ рд╡рд┐рдХрд▓реНрдк рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╣реЗрдХреНрд╕ (рдПрдл)


рд╣рдо HEX рдЖрдзрд╛рд░ рдЙрдкрд╕рд░реНрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реАрдзреЗ "F" рдкреНрд░рддреАрдХ рдЬреЛрдбрд╝рдХрд░ HEX рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


 F01550016EFBBBFD09FD180D0B8D0B2D0B5D18220D0BCD0B8D180 

рд╣рдореЗрдВ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ HEX рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ utf-8 рд▓рд╛рдЗрди рд╣реИ: "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб"


рдкрд░реАрдХреНрд╖рдг: / ipfs / F01550016EFBBFD09FD180D0B8D0B2D0B5D18220D0BCD0B8D180


рдмреЗрд╕ 58btc (z)


Base58btc рдЗрд╕рд▓рд┐рдП рдХрдо рд╣реЛрдЧрд╛


рд╣рдо рдЕрдкрдиреЗ HEX рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдмреЗрд╕ 58btc рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдСрдирд▓рд╛рдЗрди рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


 0x"01 55 00 16 EFBBBF D09F D180 D0B8 D0B2 D0B5 D182 20 D0BC D0B8 D180" = "3NDGAEgXCxbPucFFCQc9s5ScqZjqVFNr56P" (base58btc) 

рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреЗрд╕ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдХреИрд░реЗрдХреНрдЯрд░ base58btc "z" рдЬреЛрдбрд╝реЗрдВ


 z3NDGAEgXCxbPucFFCQc9s5ScqZjqVFNr56P 

рд╣рдореЗрдВ рдмреЗрд╕ 58btc рдПрдХ рдХрдВрдЯреЗрдВрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдорд┐рд▓рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ utf-8 рд▓рд╛рдЗрди рд╣реИ: "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб"


рдкрд░реАрдХреНрд╖рдг: / ipfs / z3NDGAEgXCxbPucFFCQc9s5ScqZjqVFNr56P


DAG рдмреНрд▓реЙрдХ


рдкрд╛рда рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди HTML рдкреГрд╖реНрда рдХреЛ рдПрдирдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ DAG рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмреНрд▓реЙрдХ рдореЗрдВ рдЗрд╕рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдпрд╣рд╛рдБ рд╣рдорд╛рд░рд╛ HTML рд╣реИ:


 <b><i><u> </u></i></b> 

рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдЙрдкрд░реЛрдХреНрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдЗрд╕ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдмреЗрд╕ 58btc рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:


 zeExnPvBXdTRwCBhfkJ1fHFDaXpdW4ghvQjfaCRHYxtQnd3H4w1MPbLczSqyCqVo 

рдЕрдм JSON рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ:


 { "links": [{ "Cid": { "/": "zeExnPvBXdTRwCBhfkJ1fHFDaXpdW4ghvQjfaCRHYxtQnd3H4w1MPbLczSqyCqVo" }, "Name": "index.html" }], "data": "CAE=" } 

  1. "рдбреЗрдЯрд╛" рдбреАрдПрдЬреА рдмреНрд▓реЙрдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ - рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
  2. "рд▓рд┐рдВрдХ" рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред
  3. "рдирд╛рдо" рдХреНрд░рдорд╢рдГ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╣реИред
  4. "Cid" рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ

ipfs dag put -f"protobuf" JSON рдХреЛ IPFS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ DAG рдмреНрд▓реЙрдХ рдореЗрдВ рдмрджрд▓реЗрдВред


рдореБрдЭреЗ рдПрдХ рдорд▓реНрдЯреАрд╢ рдорд┐рд▓рд╛: QmXXixn4rCzGguhxQPjXQ8Mr5rdqwZfJTKkeB6DfZLt8EZ


рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрдВрдХрд┐рдд рдереАред


рдЕрдЧрд▓рд╛, рдЗрд╕ рдорд▓реНрдЯреАрдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рдорд╛рдкреНрдд рдмреНрд▓реЙрдХ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░реЗрдВ


 ipfs block get QmXXixn4rCzGguhxQPjXQ8Mr5rdqwZfJTKkeB6DfZLt8EZ > block.dag 

рд╣рдо рдмреНрд▓реЙрдХ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ HEX рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ:


 0x"123F0A2F0155002BEFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E120A696E6465782E68746D6C18000A020801" 

рдЬреЛрдбрд╝рдирд╛:


  1. CID рд╕рдВрд╕реНрдХрд░рдг (0x01)
  2. DAG рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ (0x70)
  3. рддреБрдЪреНрдЫ рд╣реИрд╢ (0x00)
  4. рдбреЗрдЯрд╛ рдЖрдХрд╛рд░ 69 рдмрд╛рдЗрдЯреНрд╕ (0x45)

 0x"01 70 00 45 123F0A2F0155002BEFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E120A696E6465782E68746D6C18000A020801" 

Base58btc рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЙрдкрд╕рд░реНрдЧ "z" рдЬреЛрдбрд╝реЗрдВ


 z6S3Z3W1zuRxio8AJC41jRTdyU9pZWnU6sNbvyGyypEdD8JVNdW42ZmGYWKWGbVDELLvJNWcMspaZMUPZKt7JQmhdyXCqq7j37GL 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдЯреЗрдВрдЯ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ HTML рдкреЗрдЬ index.html "Hello World" рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╣реИред


рдкрд░реАрдХреНрд╖рдг: / ipfs / z6S3Z3W1zuRxio8AJC41jRTdyU9pZWnU6sNbvyGyypEdD8JVNdW42ZmGWWWWWWWVVVELLVJNWWMVWMMZaZMupZKt7JQXMhxXx


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╣реИрд╢ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд▓реЙрдХ рдореЗрдВ рднреА рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ DNS dnslink рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдЖрдк рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рд╛рдзрд╛рд░рдг рд╕рд╛рдЗрдЯ рдлрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдбреАрдПрдЬреА рдмреНрд▓реЙрдХ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд╝рд░реНрд╕


DAG рдмреНрд▓реЙрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рднреА рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред DAG рдмреНрд▓реЙрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд╝рд░реНрд╕ рдбреЗрдЯрд╛ рд╣реИред рд╢реАрд░реНрд╖ рдкрд░рдд merkledag.proto рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ unixfs.proto рд╣реИред


рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд╝рд░реНрд╕


рдХреЛрдИ рднреА рдкреНрд░реЛрдЯреЛрдмрдлрд╝рд░ рд╡реЗрд░рд┐рдВрдЯ рдлрд╝реАрд▓реНрдб рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдПрдХ рдмрд╛рдЗрдЯ рд▓реЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХрд╛ рдХреБрд▓ рдореВрд▓реНрдп 0x80 рд╕реЗ рдХрдо рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реА рдмрд╛рдЗрдЯ 0x12 рд╣реИред рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рдирд┐рдЪрд▓реЗ 3 рдмрд┐рдЯреНрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рд╢реЗрд╖ рдкреНрд░реЛрдЯреЛ рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдИрдбреА рд╣реИред


рд▓рдВрдмрд╛рдИ-рд╕реАрдорд╛рдВрдХрд┐рдд

рд╣рдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:


 0x12 & 0x07 = 2 (: Length-delimited) 0x12 >> 3 = 2 (ID: 2) 

рд▓рдВрдмрд╛рдИ-рд╕реАрдорд╛рдВрдХрд┐рдд рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╛рдЗрдЯ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдЗрд╕рдХреЗ рдЕрд╡рдпрд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╡рд╛рд░реНрдирд┐рд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдмрд╛рдЗрдЯреНрд╕, рдПрдореНрдмреЗрдбреЗрдб рд╕рдВрджреЗрд╢, рдкреИрдХреНрдб рджреЛрд╣рд░рд╛рдпрд╛ рдлрд╝реАрд▓реНрдб) рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░реЛрдЯреЛ рдлрд╛рдЗрд▓ рдХреНрдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред


Varint

рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдВ:


 0x18 & 0x07 = 0 (: Varint) 0x12 >> 3 = 3 (ID: 3) 

рд╡рд░рд┐рдВрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗрд░рд┐рдПрдВрдЯ рдореЗрдВ рдореВрд▓реНрдп рдХрд╛ рддреБрд░рдВрдд рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рди (int32, int64, uint32, uint64, sint32, sint64, bool, enum) рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЬреЛ рдкреНрд░реЛрдЯреЛ рдлрд╛рдЗрд▓ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред


рд╣рдо block.dag рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ рдКрдкрд░ HEX рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдерд╛


рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдРрд╕реА рд╕рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░реЛрдЯреЙ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрдлрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рджреЗрдЧрд╛ ред


 0x"123F0A2F0155002BEFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E120A696E6465782E68746D6C18000A020801" 

рд╣рдо рдмреНрд▓реЙрдХ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЯреЛ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдореИрдк рдХрд░рддреЗ рд╣реИрдВред


merkledag.proto
 // An IPFS MerkleDAG Link message PBLink { // multihash of the target object optional bytes Hash = 1; // utf string name. should be unique per object optional string Name = 2; // cumulative size of target object optional uint64 Tsize = 3; } // An IPFS MerkleDAG Node message PBNode { // refs to other objects repeated PBLink Links = 2; // opaque user data optional bytes Data = 1; } 

unixfs.proto
 message Data { enum DataType { Raw = 0; Directory = 1; File = 2; Metadata = 3; Symlink = 4; HAMTShard = 5; } required DataType Type = 1; optional bytes Data = 2; optional uint64 filesize = 3; repeated uint64 blocksizes = 4; optional uint64 hashType = 5; optional uint64 fanout = 6; } 

 12 (: 2 (Length-delimited). ID: 2 (PBLink PBNode.Links (merkledag.proto))) 3F (: 63 ) 0A (: 2 (Length-delimited). ID: 1 (PBLink.Hash)) 2F (: 47 ) 01 55 00 2B (CIDv1 Raw Identity 43 ) EFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E = "я╗┐<b><i><u> </u></i></b>" 12 (: 2 (Length-delimited). ID: 2 (PBLink.Name)) 0A (: 10 ) 696E6465782E68746D6C = "index.html" 18 (: 0 (Varint). ID: 3 (PBLink.Size)) 00 (: 0) 0A (: 2 (Length-delimited). ID: 1 (PBNode.Data = Data (unixfs.proto))) 02 (: 2 ) 08 (: 0 (Varint). ID: 1 (Data.Type)) 01 (1 == Data.DataType.Directory) 

рддрджрдиреБрд╕рд╛рд░, рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдмреНрд▓реЙрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:


 12 (: 2 (Length-delimited). ID: 2 (PBLink PBNode.Links (merkledag.proto))) 3B (: 59 ) 0A (: 2 (Length-delimited). ID: 1 (PBLink.Hash)) 2F (: 47 ) 01 55 00 2B (CIDv1 Raw Identity 43 ) EFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E = "я╗┐<b><i><u> </u></i></b>" 12 (: 2 (Length-delimited). ID: 2 (PBLink.Name)) 06 (: 6 ) 312E68746D6C = "1.html" 18 (: 0 (Varint). ID: 3 (PBLink.Size)) 00 (: 0) 12 (: 2 (Length-delimited). ID: 2 (PBLink PBNode.Links)) 3B (: 59 ) 0A (: 2 (Length-delimited). ID: 1 (PBLink.Hash)) 2F (: 47 ) 01 55 00 2B (CIDv1 Raw Identity 43 ) EFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E = "я╗┐<b><i><u> </u></i></b>" 12 (: 2 (Length-delimited). ID: 2 (PBLink.Name)) 06 (: 6 ) 322E68746D6C = "2.html" 18 (: 0 (Varint). ID: 3 (PBLink.Size)) 00 (: 0) 0A (: 2 (Length-delimited). ID: 1 (PBNode.Data = Data(unixfs.proto))) 02 (: 2 ) 08 (: 0 (Varint). ID: 1 (Data.Type)) 01 (1 == Data.DataType.Directory) 

рдпрд╣реА рд╣реИ, PBNode.Links (0x12) рдлрд╝реАрд▓реНрдб рдХреЛ рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "F 01 70 00" (HEX CIDv1 DAG рдкрд╣рдЪрд╛рди) рдФрд░ DAG рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ "7E" (126 рдмрд╛рдЗрдЯреНрд╕) рдЬреЛрдбрд╝реЗрдВ


 F 01 70 00 7E 12 3B 0A 2F 01 55 00 2B EFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E 12 06 312E68746D6C 18 00 12 3B 0A 2F 01 55 00 2B EFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E 12 06 322E68746D6C 18 00 0A 02 08 01 

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: / ipfs / F0170007E123B0A2F0155002BEFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E1206312E68746D6C1800123B0A2F0155002BEFBBBF3C623E3C693E3C753ED09FD180D0B8D0B2D0B5D18220D0BCD0B8D1803C2F753E3C2F693E3C2F623E1206322E68746D6C18000A020801


рдирд┐рд╖реНрдХрд░реНрд╖


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреА рд╣реИ рддрд╛рдХрд┐ рдмреНрд▓реЙрдХ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛред

Source: https://habr.com/ru/post/hi423073/


All Articles