$30 off During Our Annual Pro Sale. View Details »

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

Avatar for okutoshi okutoshi
March 16, 2018

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

Ethereum Name Service

Avatar for okutoshi

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