Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ethereum Name Serviceについて調べてみた

okutoshi
March 16, 2018

Ethereum Name Serviceについて調べてみた

Ethereum Name Service

okutoshi

March 16, 2018
Tweet

Other Decks in Programming

Transcript

  1. ENS って何? ethereum のアドレス 0 x a b c d

    a e g . . . を x x x . e t h という文字列に bind してくれるdapps EIP137 で策定 https://github.com/ethereum/EIPs/blob/master/EIPS/eip‑ 137.md Domain の販売・ レンタルも出来る https://enslisting.com/ 第2 次ドメインネー ム戦争の予感 3
  2. 名前を取得する方法 公式サイトやMyEthereumWallet から申請したい名前を申し込む ENS のオー クションコントラクトでオー クション開始 入札期間3 日間、 入札額公表期間2

    日間 入札の際に最低額0.01ETH をデポジット 誰も入札しない、 または最高の入札額を提示した人が使用権獲得 ルー ルの詳細はhttp://individua1.net/ethereum‑name‑service/ 4
  3. i n t e r f a c e E

    N S { e v e n t N e w O w n e r ( b y t e s 3 2 i n d e x e d n o d e , b y t e s 3 2 i n d e x e d l a b e l , e v e n t T r a n s f e r ( b y t e s 3 2 i n d e x e d n o d e , a d d r e s s o w n e r ) ; e v e n t N e w R e s o l v e r ( b y t e s 3 2 i n d e x e d n o d e , a d d r e s s r e s o l v e r ) ; e v e n t N e w T T L ( b y t e s 3 2 i n d e x e d n o d e , u i n t 6 4 t t l ) ; f u n c t i o n s e t S u b n o d e O w n e r ( b y t e s 3 2 n o d e , b y t e s 3 2 l a b e l , a d d r e s s f u n c t i o n s e t R e s o l v e r ( b y t e s 3 2 n o d e , a d d r e s s r e s o l v e r ) p u b l i c ; f u n c t i o n s e t O w n e r ( b y t e s 3 2 n o d e , a d d r e s s o w n e r ) p u b l i c ; f u n c t i o n s e t T T L ( b y t e s 3 2 n o d e , u i n t 6 4 t t l ) p u b l i c ; f u n c t i o n o w n e r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) ; f u n c t i o n r e s o l v e r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) f u n c t i o n t t l ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( u i n t 6 4 ) ; } 7
  4. c o n t r a c t E N

    S R e g i s t r y i s E N S { s t r u c t R e c o r d { a d d r e s s o w n e r ; a d d r e s s r e s o l v e r ; u i n t 6 4 t t l ; } / / e x . ) o k u b o - t o s h i h i k o . e t h / / k e y = n o d e = k e c c a k 2 5 6 ( " t o s h i h i k o " , k e c c a k 2 5 6 ( " e t h " ) ) m a p p i n g ( b y t e s 3 2 = > R e c o r d ) r e c o r d s ; m o d i f i e r o n l y _ o w n e r ( b y t e s 3 2 n o d e ) { r e q u i r e ( r e c o r d s [ n o d e ] . o w n e r = = m s g . s e n d e r ) ; _ ; } f u n c t i o n s e t O w n e r ( b y t e s 3 2 n o d e , a d d r e s s o w n e r ) p u b l i c o n l y _ o w n e r ( n o d e ) { T r a n s f e r ( n o d e , o w n e r ) ; r e c o r d s [ n o d e ] . o w n e r = o w n e r ; } . . . / / 以降o w n e r , r e s o l v e r , t t l のs e t t e r , g e t t e r } 8
  5. resolver 1/2 c o n t r a c t

    P u b l i c R e s o l v e r { ・ ・ ・ s t r u c t R e c o r d { a d d r e s s a d d r ; / / e t h e r e u m a d d r e s s b y t e s 3 2 c o n t e n t ; / / S w a r m h a s h s t r i n g n a m e ; / / E N S N a m e x x x . e t h P u b l i c K e y p u b k e y ; m a p p i n g ( s t r i n g = > s t r i n g ) t e x t ; / / u n u s e s m a p p i n g ( u i n t 2 5 6 = > b y t e s ) a b i s ; / / a b i } E N S e n s ; / / k e y ( b y t e 3 2 ) = n o d e m a p p i n g ( b y t e s 3 2 = > R e c o r d ) r e c o r d s ; m o d i f i e r o n l y _ o w n e r ( b y t e s 3 2 n o d e ) { r e q u i r e ( e n s . o w n e r ( n o d e ) = = m s g . s e n d e r ) ; _ ; } f u n c t i o n P u b l i c R e s o l v e r ( E N S e n s A d d r ) p u b l i c { e n s = e n s A d d r ; } 10
  6. resolver 2/2 f u n c t i o n

    s e t A d d r ( b y t e s 3 2 n o d e , a d d r e s s a d d r ) p u b l i c o n l y _ o w n e r ( n o d e ) { r e c o r d s [ n o d e ] . a d d r = a d d r ; A d d r C h a n g e d ( n o d e , a d d r ) ; } f u n c t i o n a d d r ( b y t e s 3 2 n o d e ) p u b l i c v i e w r e t u r n s ( a d d r e s s ) { r e t u r n r e c o r d s [ n o d e ] . a d d r ; } / / s e t t e r , g e t t e r / / c o n t e n t , n a m e , p u b k e y , t e x t , a b i s 11
  7. コントラクトからのコー ル i m p o r t ' .

    / E N S . s o l ' ; c o n t r a c t M y C o n t r a c t { E N S e n s ; f u n c t i o n M y C o n t r a c t ( a d d r e s s e n s A d d r e s s ) { e n s = E N S ( e n s A d d r e s s ) ; } f u n c t i o n r e s o l v e ( b y t e s 3 2 n o d e ) c o n s t a n t r e t u r n s ( a d d r e s s ) v a r r e s o l v e r = e n s . r e s o l v e r ( n o d e ) r e t u r n r e s o l v e r . a d d r ( n o d e ) ; } } 12
  8. 15

  9. 18

  10. 24

  11. 25

  12. DMP とは 広告主やメディアからオー ディエンスデー タ( クリックや購入といった Web 上の行動ログなど) を収集・ 解析し、

    広告やマー ケティングに活用 できるようにするデー タ管理プラットフォー ム。 26