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

IPFS
IPFS рдХрдВрдЯреЗрдВрдЯ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рддрд░рд┐рдд рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реА рдЧрдИ рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрд╢ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВред
Ethereum рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ IPFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?
рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рдХрд┐рд╕реА рднреА рд╡реЙрд▓реНрдпреВрдо рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рдФрд░ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдСрдл-рдЪреЗрди рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдкрдбрд╝реА рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реИ, рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЖрдИрдкреАрдПрдлрдПрд╕ред рд▓реЗрдХрд┐рди рдЖрдИрдкреАрдПрдлрдПрд╕ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:
- рдПрдХ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдВрдХ рдПрдХ рд╣реИрд╢ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЗрд╕ рд╣реИрд╢ рдХреЛ рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд░реНрд╡рд░ рдХреА рдЕрдиреБрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмреАрдорд╛ рдХрд░рддрд╛ рд╣реИ (рдЕрд╡рд░реБрджреНрдз рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ)
- рдлрд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ рдФрд░ рд╣реИрд╢ рдХрдиреНрдлрд░реНрдореЗрд╢рди рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рдХрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧреИрд╕ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдХрдорд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ, рдХреЛрдИ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдХреЛрдИ рдХреЗрдВрджреНрд░реАрдп рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдлрд╝рд╛рдЗрд▓ "рд╡рд┐рддрд░рд┐рдд" рд╣реЛред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рд╡рд┐рддрд░рдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ - рдЕрдкрдиреЗ ipfs рдбреЗрдорди рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ
ipfs add
рдорд╛рдзреНрдпрдо рд╕реЗ
ipfs add
ред
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд┐рдХреЗрдВрджреНрд░реАрдХрд░рдг рдХреА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЕрдм рдУрд░реЗрдХреНрд▓рд╛рдЗрдЬ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рдУрд░реЗрдХрд▓ рддрдВрддреНрд░ рдореЗрдВ рдЖрдИрдкреАрдПрдлрдПрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗред
Oraclize
рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЛ рдирдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреНрд▓реЙрдХрдЪреИрди рд╕реЗ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓реЗрдирджреЗрди рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рдФрд░ рдЗрд╕рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреНрдпрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рд╡рд┐рдирд┐рдордп рджрд░, рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рд╕реЗ рдЧреИрд╕ рдУрд╡рд░рд░рди рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЗрд╕рд▓рд┐рдП,
рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдХрд╛рдо рдореЗрдВ рдЖрддреА рд╣реИ: рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ, рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдпрд╛ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рдФрд░ рдЙрд╕реА рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рди рдХреЗрд╡рд▓ рдПрдХ Ethereum рд╕реЗрд╡рд╛ рд╣реИ, рдЗрд╕реА рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдиреНрдп рдмреНрд▓реЙрдХрдЪреЗрди рдХреЛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ Ethereum рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред
рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЛ рдПрдХ oraclizeAPI рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЕрдкрдиреЗ рд╕рдВрдХрд▓рдХ (рд╕реЛрд▓) рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рдХреЛ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛: oraclizeAPI_0.5.sol 0.4.18 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, oraclizeAPI_0.4.sol рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП 0.4.1 рд╕реЗ, oraclizeAPI_pre0.4.sol рдкреБрд░рд╛рдиреЗ рд╕рднреА рдХреЗ рд▓рд┐рдП, рд╕рдорд░реНрдерди рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╣реА рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЯреНрд░рдлрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдЕрдиреБрдмрдВрдз рдХрд╛ рдорд┐рд▓рд╛рдиред
рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ, рдЖрдк рдЕрдиреБрдмрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ
usingOraclize
ред рдФрд░ рдЖрдк рдУрд░реЗрдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреЛ рдореБрдЦреНрдп рдЪреАрдЬреЛрдВ рдХреЛ
oraclize_query
рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛, рдФрд░ рдлрд┐рд░
__callback
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ
__callback
рдХрд░рдирд╛ред рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз (рдбреЙрд▓рд░ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдПрдпрд░рдЯрд╛рдЗрдо рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
pragma solidity 0.4.23; import "./usingOraclize.sol"; contract ExampleContract is usingOraclize { string public ETHUSD; event updatedPrice(string price); event newOraclizeQuery(string description); function ExampleContract() payable { updatePrice(); } function __callback(bytes32 myid, string result) { require (msg.sender == oraclize_cbAddress()); ETHUSD = result; updatedPrice(result); } function updatePrice() payable { if (oraclize_getPrice("URL") > this.balance) { newOraclizeQuery("Oraclize query was NOT sent, please add some ETH to cover for the query fee"); } else { newOraclizeQuery("Oraclize query was sent, standing by for the answer.."); oraclize_query("URL", "json(https://api.coinmarketcap.com/v1/ticker/ethereum/?convert=USD).0.price_usd"); } } }
рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝рдВрдХреНрд╢рди
updatePrice
ред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓реЗ рдПрдХ рдЬрд╛рдБрдЪ рд╣реИ рдХрд┐
oraclize_getPrice(тАЬURLтАЭ)
рдЕрдиреБрдмрдВрдз рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрддреБрд▓рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐
oraclize_query
рдХреЙрд▓ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рдФрд░ рдЧреИрд╕ рднреБрдЧрддрд╛рди рдХреЗ рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред
тАЬURLтАЭ
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдПрдХ рдкрджрдирд╛рдо рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ https рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрд░реЛрдз рд╣реИ, рддреЛ рд╣рдо рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрддреНрддрд░ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ json (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ) рдФрд░ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдо рдЖрдЧреЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ)ред
__callback
рд░реЗрдЦрд╛
__callback
рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ
__callback
ред рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ oraclize рдХреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрддреЗ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реБрдЖ рд╣реИ
Oraclize рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рдПрдХ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдФрд░
__callback
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ
__callback
рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░реЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрдВрдЧреЗред
рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, oraclize рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдИрдерд░ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдмрдВрдз рдХреЗ рд╕рдВрддреБрд▓рди рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдкрддреЗ рдкрд░ред рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдирдП рдЕрдиреБрдмрдВрдз рд╕реЗ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рд╣реИ, рдпрд╣ рдирд┐: рд╢реБрд▓реНрдХ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдкрд░реАрдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рднреБрдЧрддрд╛рди рд╕рдВрдмрдВрдзрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЯреЗрд╕реНрдЯрдиреЗрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдореВрд▓реНрдп рдореЗрдВ рджреЛ рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рдФрд░ рдЧреИрд╕ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рдиред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рдбреЙрд▓рд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдИрдерд░ рдХреА рдорд╛рддреНрд░рд╛ рд╡рд░реНрддрдорд╛рди рджрд░ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕реНрд░реЛрдд рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╣рд╛рдпрдХ рддрдВрддреНрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐ URL рдЕрдиреБрд░реЛрдз рдХреА рдХреАрдордд рдХрдИ рд╕реЗрдВрдЯ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реИ рдпрд╛ рдереЛрдбрд╝рд╛ рд╣реИ? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдЧреИрд╕ рдЪрд╛рд░реНрдЬ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдкрд░ рдЧреИрд╕ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдИрдерд░ рдХреА рд░рд╛рд╢рд┐ рдЕрдиреБрдмрдВрдз рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд░рд╛рд╢рд┐ рдХреЙрд▓рдмреИрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреАрдордд рдмрд╛рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд▓реЗрди-рджреЗрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрд╛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓рдЯрдХрд╛ рд░рд╣реЗрдЧрд╛ред рдЗрд╕реА рд╕рдордп, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЧреИрд╕ рдХреА рдорд╛рддреНрд░рд╛ рдЬрд╛рдирдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдмреЛрд░реНрдб рдХреЛ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдорд╛рд░реНрдЬрд┐рди рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 20 рдЧреАрдЧрд╛ рдХреА рдХреАрдордд рдкрд░ 200 рд╣рдЬрд╛рд░ рдЧреИрд╕ рдХреА рд╕реАрдорд╛ рд╣реИред рдпрд╣ рдХрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд╕рдд рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдФрд░ 20 рдЧреАрдЧрд╛ рдХреА рдХреАрдордд, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд▓ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдФрд╕рдд 4 рдЧреАрд╡реЗрдИ рд╣реИ), рд▓реЗрдХрд┐рди рд▓реЗрдирджреЗрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рдордп, рдмрд╛рдЬрд╛рд░ рдХреА рдХреАрдордд рдЕрдЪрд╛рдирдХ рдХреВрдж рд╕рдХрддреА рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд░реАрдм рд╣реИред рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рдореВрд▓реНрдпреЛрдВ рдФрд░ $ 500 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣рд╡рд╛ рдХреА рдХреАрдордд рдХреЗ рд╕рд╛рде, рдЧреИрд╕ рднреБрдЧрддрд╛рди $ 2 рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрдореАрд╢рди рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЧреИрд╕ рдХреА рд╕реАрдорд╛ рдФрд░ рдХреАрдордд рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдХрд╛рдлреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред
рдЧреИрд╕ рдХреА рдХреАрдордд рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ -
oraclize_setCustomGasPrice(< wei>)
ред рдХреЙрд▓ рдХреЗ рдмрд╛рдж, рдореВрд▓реНрдп рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдХреЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реАрдорд╛ рдХреЛ
oraclize_query
рдХреНрд╡реЗрд░реА рдореЗрдВ
oraclize_query
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
oraclize_query
, рдЗрд╕реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
oraclize_query("URL", "<>", 50000);
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕
__callback
рдореЗрдВ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рд╣реИ рдФрд░ рдЧреИрд╕ рдХреА рдЦрдкрдд 200k рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЧреИрд╕ рдХреА рдЦрдкрдд рдХреЗ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рд╕реАрдорд╛ рдкрд╛рд░ рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ
__callback
рдмрд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
рд╡реИрд╕реЗ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ oraclize рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реА рдХрд┐ рдЖрдк рдмреНрд▓реЙрдХрдЪреЗрди рдХреЗ рдмрд╛рд╣рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдкреВрд░реА рд╕реАрдорд╛ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдпрд╛ рд╢реЗрд╖ рд░рд╛рд╢рд┐ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ (рдФрд░ рднреБрдЧрддрд╛рди рдЕрдиреБрдмрдВрдз рд╕реЗ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред рдЕрдЧрд░ рд╣рдореЗрдВ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рд╣рдореЗрдВ info@oraclize.it рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рдиреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдзреНрдпрд╛рди рд░рдЦреЗрдВред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХреНрдпреЛрдВ, рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛, рдХреНрдпрд╛ рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рдмреНрд▓реЙрдХрдЪреЗрди рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рдереА? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджреИрд╡рдЬреНрдЮ рд╕реЗрд╡рд╛ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрдХ рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛ - рдмреНрд▓реЙрдХрдЪреИрди рдХреЗ рдирдП рдмреНрд▓реЙрдХреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреА рд╣реИ рдФрд░, рдпрджрд┐ рдпрд╣ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд
рдорд╛рдирд╛ рдЧрдпрд╛
URL
рдЕрд▓рд╛рд╡рд╛, oraclize 4 рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЖрдкрдиреЗ рдореВрд▓реНрдп-рдирд┐рд░реНрдзрд╛рд░рдг рдкрд░ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛):
WolframAlpha
,
IPFS
,
random
рдФрд░
computation
ред рдЖрдЗрдП рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
1. URL
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:
oraclize_query("URL", "json(https://api.coinmarketcap.com/v1/ticker/ethereum/?convert=USD).0.price_usd");
рдпрд╣ рдИрдерд░ рдХреА рдХреАрдордд рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рдПрдкреАрдЖрдИ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╕рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЕрдиреБрд░реЛрдз рдПрдХ рдЬрд╕реНрдЯрд░ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдлрд╝реАрд▓реНрдб рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ GET рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд URL POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡реИрдз рдЬрд╕рди рд╣реИ:
oraclize_query("URL", "json(https://shapeshift.io/sendamount).success.deposit", '{"pair":"eth_btc","amount":"1","withdrawal":"1AAcCo21EUc1jbocjssSQDzLna9Vem2UN5"}')
рддрдм рдЕрдиреБрд░реЛрдз рдХреЛ POST рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдкреАрдЖрдИ
рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд
рд╣реИ , рдпрджрд┐ рд░реБрдЪрд┐ рд╣реИ)
2. рд╡реБрд▓реНрдлрд░рд╛рдордЕрд▓реНрдлрд╛
рдпрд╣ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЖрдкрдХреЛ
рд╡реБрд▓реНрдлреНрд░рд╛рдордЖрд▓реНрдлрд╛ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрдереНрдпреЛрдВ рдпрд╛ рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
oraclize_query(тАЬWolframAlphaтАЭ, тАЬpresident of RussiaтАЭ)
Vladimir Putin
рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛, рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛
oraclize_query(тАЬWolframAlphaтАЭ, тАЬsolve x^2-4тАЭ)
x = 2
рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдЕрдкреВрд░реНрдг рдерд╛ рдХреНрдпреЛрдВрдХрд┐ see рдкреНрд░рддреАрдХ рдЦреЛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЦреБрдж рдХреЛ oraclize рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПред
3. рдЖрдИрдкреАрдПрдлрдПрд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдЖрдкрдХреЛ рдорд▓реНрдЯреА-рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдИрдкреАрдПрдлрдПрд╕ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп 20 рд╕реЗрдХрдВрдб рд╣реИред
oraclize_query(тАЬIPFSтАЭ, тАЬQmTL5xNq9PPmwvM1RhxuhiYqoTJcmnaztMz6PQpGxmALkPтАЭ)
Hello, Habr!
(рдпрджрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдЕрднреА рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ)
4. рдпрд╛рджреГрдЪреНрдЫрд┐рдХ
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреАрдврд╝реА рдЕрдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк
oraclize_query
рдЙрдкрдпреЛрдЧ
oraclize_query
, рддреЛ рдпрд╣ рддрд░реНрдХреЛрдВ рдХреА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рддреИрдпрд╛рд░реА рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
oraclize_newRandomDSQuery(delay, nbytes, customGasLimit)
рд╣реЗрд▓реНрдкрд░
oraclize_newRandomDSQuery(delay, nbytes, customGasLimit)
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рджреЗрд░реА (рд╕реЗрдХрдВрдб рдореЗрдВ) рдХреА рд╕реНрдерд╛рдкрдирд╛, рдЙрддреНрдкрдиреНрди рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░
__callback
рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд╕ рд╕реАрдорд╛ред
random
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реИ:
- рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд▓реЗрдЬрд░, рдЬрд┐рд╕реЗ рдмреНрд▓реЙрдХрдЪреЗрди (рдмрд╛рдХреА рд╕рднреА рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ) рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрди рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
oraclize_setProof(proofType_Ledger);
рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдПрдХ рдЪреЗрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
function __callback(bytes32 _queryId, string _result, bytes _proof) { require (oraclize_randomDS_proofVerify__returnCode(_queryId, _result, _proof) == 0) ); <...>
рдЗрд╕ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдЧрдгреНрдб рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, __callback
рд▓рд┐рдП рддреАрд╕рд░рд╛ рддрд░реНрдХ рдпрд╣рд╛рдВ рд╡реИрдХрд▓реНрдкрд┐рдХ _proof
рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред рдЬрдм рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХреА рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред - рдпрджрд┐ рдЖрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЯрд░реА рдореЗрдВ рд╡рд┐рдЬреЗрддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, newRandomDSQuery рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░реЗрдВред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ: orclize рдХреЙрд▓ _callback рдФрд░ рд▓реЗрдирджреЗрди рд▓рдВрдмрд┐рдд рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рдпрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджрд╛рдВрд╡ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдПрдХ рдЙрдЪреНрдЪ рдЧреИрд╕ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдФрд░ _callback рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рджрд░ рдХреЛ рдЭрдЯрдХрд╛ рджреЗрдВрдЧреЗ, рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЬреАрдд рд╣реЛрдЧреАред
5. рд╕рдВрдЧрдгрдирд╛
рдпрд╣ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ AWS рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдордирдорд╛рдиреА рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдИрдкреАрдПрдлрдПрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдЙрд╕ рдЙрддреНрддрд░ рдХреЛ рд▓рд┐рдЦреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрдЯреИрдбрдЖрдЙрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
- рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ 2500 рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЖрд░рдВрдн рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ 5 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╕рдВрдЪрд░рд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рд░рд▓рддрдо рдкреНрд░рджрд░реНрд╢рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПред
Dockerfile:
FROM ubuntu:16.04 MAINTAINER "info@rubyruby.ru" CMD echo "$ARG0 $ARG1 $ARG2 $ARG3"
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
ARG0
,
ARG1
рдЗрддреНрдпрд╛рджрд┐ред - рдпреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред
рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ dockerfile рдЬреЛрдбрд╝реЗрдВ, ipfs рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реЗрдВ
$ zip concatenation.zip Dockerfile $ ipfs daemon & $ ipfs add concatenation.zip QmWbnw4BBFDsh7yTXhZaTGQnPVCNY9ZDuPBoSwB9A4JNJD
рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ
oraclize_query
рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
oraclize_query("computation", ["QmVAS9TNKGqV49WTEWv55aMCTNyfd4qcGFFfgyz7BYHLdD", "s1", "s2", "s3", "s4"]);
рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдЖрд░реНрдХрд╛рдЗрд╡ рдорд▓реНрдЯреАрд╢ рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
__callback
рдкрд░рд┐рдгрд╛рдо
s1 s2 s3 s4
__callback
ред
рдкрд╛рд░реНрд╕рд░ рд╣реЗрд▓реНрдкрд░реНрд╕ рдПрдВрдб рд╕рдмрдХреНрд╡реЗрд░реАрдЬрд╝
рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ, рдЖрдк рдХрдИ рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
1. JSON рдкрд╛рд░реНрд╕рд░
рдЖрдкрдиреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдХреЗрд╡рд▓ рдХреАрдордд рд╕рд┐рдХреНрдХреЛрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд▓реМрдЯрд╛рдИ рдЧрдИ рдереА:
json(https://api.coinmarketcap.com/v1/ticker/ethereum/?convert=USD).0.price_usd
рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓реМрдЯрдирд╛:
[ { "id": "ethereum", "name": "Ethereum", "symbol": "ETH", "rank": "2", "price_usd": "462.857", "price_btc": "0.0621573", "24h_volume_usd": "1993200000.0", "market_cap_usd": "46656433775.0", "available_supply": "100800968.0", "total_supply": "100800968.0", "max_supply": null, "percent_change_1h": "-0.5", "percent_change_24h": "-3.02", "percent_change_7d": "5.93", "last_updated": "1532064934" } ]
рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд░рдгреА рд╣реИ, рд╣рдо рддрддреНрд╡
0
рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ -
price_usd
рдлрд╝реАрд▓реНрдб
2. рдПрдХреНрд╕рдПрдордПрд▓
рдЙрдкрдпреЛрдЧ JSON рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
xml(https://informer.kovalut.ru/webmaster/getxml.php?kod=7701).Exchange_Rates.Central_Bank_RF.USD.New.Exch_Rate
3. рдПрдЪрдЯреАрдПрдордПрд▓
рдЖрдк XPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ XHTML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдерд░рд╕реНрдХреИрди рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХреЗрдЯ рдХреИрдк рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
html(https://etherscan.io/).xpath(string(//*[contains(@href, '/stat/supply')]/font))
MARKET CAP OF $46.148 BillionB
4. рдмрд╛рдЗрдирд░реА рд╣реЗрд▓реНрдкрд░
рдЖрдкрдХреЛ рд╕реНрд▓рд╛рдЗрд╕ (рдСрдлрд╕реЗрдЯ, рд▓рдВрдмрд╛рдИ) рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ рд╕реЗ рдЯреБрдХрдбрд╝реЗ рдХрд╛рдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "abc" рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ:
echo "abc" > example.bin
рдЗрд╕реЗ IPFS рдкрд░ рд░рдЦреЗрдВ:
$ ipfs add example.bin added Qme4u9HfFqYUhH4i34ZFBKi1ZsW7z4MYHtLxScQGndhgKE
рдЕрдм 1 рдкрд╛рддреНрд░ рдХреЛ рдмреАрдЪ рд╕реЗ рдХрд╛рдЯреЗрдВ:
binary(Qme4u9HfFqYUhH4i34ZFBKi1ZsW7z4MYHtLxScQGndhgKE).slice(1, 1)
рдЙрддреНрддрд░ рдореЗрдВ рд╣рдо
b
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, рдмрд╛рдЗрдирд░реА рд╣реЗрд▓реНрдкрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрдИрдкреА рд╕реНрд░реЛрдд рдирд╣реАрдВ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдИрдкреАрдПрдлрдПрд╕ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╛рд░реНрд╕рд░реЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдорд╛рди рд▓реЗрдВ рдХрд┐ JSON рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ URL рдХреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕реА рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
{ "one":"1", "two":"2" }
рдЗрд╕реЗ IPFS рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
$ ipfs add test.json added QmZinLwAq5fy4imz8ZNgupWeNFTneUqHjPiTPX9tuR7Vxp
рдФрд░ рдлрд┐рд░ рдЗрд╕ рддрд░рд╣ рдЬреБрджрд╛:
json(QmZinLwAq5fy4imz8ZNgupWeNFTneUqHjPiTPX9tuR7Vxp).one
рд╣рдо
1
рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдкрд╛рд░реНрд╕рд░ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд▓рдЧ
nested
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рдо рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ (рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдорд╛рди рдЬреЛрдбрд╝рддреЗ рд╣реБрдП):
[WolframAlpha] add ${[IPFS] json(QmZinLwAq5fy4imz8ZNgupWeNFTneUqHjPiTPX9tuR7Vxp).one} to ${[IPFS] json(QmZinLwAq5fy4imz8ZNgupWeNFTneUqHjPiTPX9tuR7Vxp).two}
рд╣рдореЗрдВ
3
рдЕрдиреБрд░реЛрдз рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрдирддрд╛ рд╣реИ:
nested
рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрд░реЛрдд рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
${..}
рдореЗрдВ рд╕рднреА рдЙрдк-рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рдлрд╝реНрд░реЗрдо
${..}
ред
рдкрд░реАрдХреНрд╖рдг
рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ
рдЙрдкрдпреЛрдЧреА рдХреНрд╡реЗрд░реА рд╕рддреНрдпрд╛рдкрди
рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдмрд╕ рдЕрдВрджрд░ рдЬрд╛рдПрдВ, рдПрдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд, рдПрдХ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐ рдЪреБрдиреЗрдВ рдФрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ __callback рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛
рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдЖрдк
рд░реАрдорд┐рдХреНрд╕ IDE рдХреЗ рдПрдХ
рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ oraclize рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдФрд░ ganache рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдПрдереЗрд░рд┐рдпрдо рдмреНрд░рд┐рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдЖрдкрдХреЗ рдЯреЗрд╕реНрдЯрдиреЗрдЯ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯреНрд╕ oraclize рддреИрдирд╛рдд рдХрд░реЗрдЧрд╛ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЕрдиреБрдмрдВрдз рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
OAR = OraclizeAddrResolverI(0x6f485C8BF6fc43eA212E93BBF8ce046C7f1cb475);
рд░рди
ganache-cli
рддреЛ
node bridge --dev
рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЕрдиреБрдмрдВрдз рдорд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
node bridge
рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ
node bridge
рдЖрдк рднреЗрдЬреЗ рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдорджрдж рди рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдмрд▓реНрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдореЗрдВ рднреА
рдпрд╣рд╛рдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рд╣реИ ред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рд▓реЗрдирджреЗрди рдХреЗ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдореЗрдирдиреЗрдЯ рдкрд░ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ, рдЕрдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ 0. рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрд░реЛрдз рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдерд╛, рддреЛ рдЖрдк рдЕрдиреБрд░реЛрдз рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ
oraclize_query
рджреЗрддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдЗрд╕ рдЖрдИрдбреА рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдорд╛рди рдореИрдкрд┐рдВрдЧ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ:
mapping(bytes32=>bool) validIds;
рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдордп, рдЖрдИрдбреА рдХреЛ
true
рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЧрдпрд╛
true
:
bytes32 queryId = oraclize_query(<...>); validIds[queryId] = true;
рдФрд░ рдлрд┐рд░
__callback
рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдЕрднреА рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
function __callback(bytes32 myid, string result) { require(validIds[myid] != bytes32(0)); require(msg.sender == oraclize_cbAddress()); validIds[myid] = bytes32(0); <...>
рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рддрдВрддреНрд░ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг
__callback
рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рдорд╛рдгреАрдХрд░рдг
рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╢реБрд▓реНрдХ рд╡рд╕реВрд▓ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ oraclize рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рддрдВрддреНрд░реЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд░реНрдгрди рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред
рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрдВрддреНрд░,
рдЖрдИрдкреАрдПрдлрдПрд╕ рдореЗрдВ рднрдВрдбрд╛рд░рдг рдХреЗ рд╕рд╛рде
рдЯреАрдПрд▓рдПрд╕рдиреЛрдЯрд░реА рд╣реИ ред IPFS рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рдг рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐
__callback
рд╕реНрд╡рдпрдВ рд╕рд╛рдХреНрд╖реНрдп рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рд╢рд╛рдпрдж 4-5 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ), рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдорд▓реНрдЯреА-рд╣реИрд╢ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:
oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS);
рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд░, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рдУрд░реЗрдХреНрд▓рд╛рдЗрдЬрд╝ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЕрд╢реБрджреНрдзрд┐ рд╕реЗ рд╣рдореЗрдВ рдмрдЪрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рдЕрдореЗрдЬрд╝реЕрди рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдСрдбрд┐рдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдкрдврд╝реЗрдВ
рдпрд╣рд╛рдБрдирд┐рд╖реНрдХрд░реНрд╖
рдУрд░рд╛рдХреНрд▓рд╛рдЗрдЬрд╝ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЖрдИрдкреАрдПрдлрдПрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдУрд░реЗрдХрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдлрд┐рд░ рд╕реЗ рдмрд╛рд╣рд░реА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрди рдЦрддрд░реЛрдВ рдХреЗ рдЕрдзреАрди рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмреНрд▓реЙрдХрдЪреЗрди рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдХреЗрдВрджреНрд░реАрдХрд░рдг, рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛, рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди, рд╕реНрдкреВрдлрд┐рдВрдЧред рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рд╕рдм рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрд╡рдЧрдд рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХрдЪреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреНрдпреЛрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреНрдпрд╛ рдмрд╛рд╣рд░реА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реВрдиреНрдп рдХреЛ рд▓рд╛рдн рдХрдо рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк Ethereum рдкрд░ рдХреБрдЫ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рд╖рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ рдЗрди рд▓реЗрдЦреЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рд╢рд╛рдпрдж рд╣рдо рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗред
рдЗрдереЗрд░рд┐рдпрдо рдкрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╡рд┐рд╕рд░реНрдЬрди:
рднрд╛рдЧ 1: рдкрд░рд┐рдЪрдпрднрд╛рдЧ 2: Web3.js рдФрд░ рдЧреИрд╕рднрд╛рдЧ 3: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрднрд╛рдЧ 4: рдЯреНрд░рдлрд▓, рдЧрдирд╛рдЪреЗ, рдЗрдВрдлреНрд░рд╛ рдореЗрдВ рддреИрдирд╛рдд рдФрд░ рдбрд┐рдмрдЧ рдХрд░реЗрдВ