SlideShare une entreprise Scribd logo
Genkidama: P2P


          @syuu1228
• Genkidama

•

•
Genkidama
•
•
•   DHT
    Genkidama

•
    •                       ”NicoCache”

    •   DHT     ”OverlayWeaver”
Genkidama

     •
     •

  

     •
Genkidama
Genkidama             get/put
                                DHT


            get/put                   Web
Genkidama
                                ○
Genkidama             get/put
                                    DHT


            get/put                       Web
NicoCache
•
•         →

•         →
Genkidama
•         →DHT
                 get/put
                           DHT
DHT
•   DHT(Distributed Hash Table:                           )



•   P2P

•
    dht.put(key, value); value = dht.get(key);



•                             DHT
                           join                  dht.join(bootstrapNode);

•
DHT
                                                       4bit    12




•
•                                             successor(key)

•   key successor(key)

•       12               successor(12) = 13
Overlay Weaver
•
•
•
• Genkidama   DHT
DHT
•
            get

•                                       put

•       : prefix +   ID   nc:sm1152439

•           :
    →
            put
URL
•                                                  HTTP
       Genkidama

•      HTTP                 URL
       http://124.32.128.131:50001/nc/sm11152439

•   HTTP                    NicoCache


                  URL
Genkidama
                                ○
Genkidama             get/put
                                    DHT


            get/put                       Web
•

•

•
•   DHT


    →
XMLRPC

•                                          IP:port
    →XMLRPC                        DB

•   onlineUsers.fetch()

•   DHT                   onlineUsers.register()




•   cron



•
•       XMLRPC   DB



    •
    •
    •
    •
    •
Genkidama
                                ○
Genkidama             get/put
                                    DHT


            get/put                       Web
Web

•   Genkidama Web Dashboard(http://genkidama.us/)
•
•           Genkidama



    •
    •
    •
•           IP
    DB       IP
Genkidama GUI
•   AWT           GUI

•   Dashboard Genkidama GUI

•                Web                                Genkidama

•   JavaScript      Genkidama          HTTP
    →JS   http://localhost:50001/       URL                         Genkidama


             http://localhost:50001/restart GET             Genkidama

•         HTTP
    →              http://genkidama.us/local/   http://localhost:         /

•
•                          Genkidama



    •   Genkidama HTTP            proxy.pac



•
    •   firefox extention
•   NicoCache      DHT

•   HTTPServer

•   XMLRPC

•   NAT

•   DHT

•   Ajax GUI

•   firefox extention
NAT
•   UPnP NAT Traversal
     •
         ex:             A                   B

     •                       →

•   UDP Hole Punching
     •                           HTTP(TCP)

     •   NAT
                             →
DHT
•                    Genkidama


       join
    →OverlayWeaver

•
•

•
Genkidama: P2Pコンテンツキャッシュ共有システム

Contenu connexe

En vedette

Prezentacja 21.04. 2011 konferencja poznań
Prezentacja  21.04. 2011 konferencja poznańPrezentacja  21.04. 2011 konferencja poznań
Prezentacja 21.04. 2011 konferencja poznań
Ekokonsultacje
 
PCA15: Does Your Product Displace a Job or Augment a Skill?
PCA15: Does Your Product Displace a Job or Augment a Skill?PCA15: Does Your Product Displace a Job or Augment a Skill?
PCA15: Does Your Product Displace a Job or Augment a Skill?
Paul Teich
 
Informed Sport Dec 08
Informed Sport Dec 08Informed Sport Dec 08
Informed Sport Dec 08
anoukjaeger
 
Allianz arena germany
Allianz arena germanyAllianz arena germany
Allianz arena germany
verka 123
 
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
Namics – A Merkle Company
 
Welcome to Thackley
Welcome to ThackleyWelcome to Thackley
Welcome to Thackley
thackley
 

En vedette (20)

Mercurial はオフラインの海を越える
Mercurial はオフラインの海を越えるMercurial はオフラインの海を越える
Mercurial はオフラインの海を越える
 
Prezentacja 21.04. 2011 konferencja poznań
Prezentacja  21.04. 2011 konferencja poznańPrezentacja  21.04. 2011 konferencja poznań
Prezentacja 21.04. 2011 konferencja poznań
 
Open Source Superfriends for Super Small Library Budgets
Open Source Superfriends for Super Small Library BudgetsOpen Source Superfriends for Super Small Library Budgets
Open Source Superfriends for Super Small Library Budgets
 
PCA15: Does Your Product Displace a Job or Augment a Skill?
PCA15: Does Your Product Displace a Job or Augment a Skill?PCA15: Does Your Product Displace a Job or Augment a Skill?
PCA15: Does Your Product Displace a Job or Augment a Skill?
 
Informed Sport Dec 08
Informed Sport Dec 08Informed Sport Dec 08
Informed Sport Dec 08
 
Allianz arena germany
Allianz arena germanyAllianz arena germany
Allianz arena germany
 
Eye protection ppe toolbox talk training
Eye protection ppe toolbox talk trainingEye protection ppe toolbox talk training
Eye protection ppe toolbox talk training
 
Kelly Ruggles
Kelly RugglesKelly Ruggles
Kelly Ruggles
 
Simple SEO - SEO Made Simple - Do It Yourself SEO
Simple SEO - SEO Made Simple - Do It Yourself SEOSimple SEO - SEO Made Simple - Do It Yourself SEO
Simple SEO - SEO Made Simple - Do It Yourself SEO
 
Learning and Skills Group Webinar 09.07.09
Learning  and Skills Group Webinar 09.07.09Learning  and Skills Group Webinar 09.07.09
Learning and Skills Group Webinar 09.07.09
 
Joomla! 1.6 uuendused
Joomla! 1.6 uuendusedJoomla! 1.6 uuendused
Joomla! 1.6 uuendused
 
Sleeping Giant Build Intro
Sleeping Giant Build IntroSleeping Giant Build Intro
Sleeping Giant Build Intro
 
HMG Response To One Death Is Too Many March 2010
HMG Response To One Death Is Too Many   March 2010HMG Response To One Death Is Too Many   March 2010
HMG Response To One Death Is Too Many March 2010
 
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
The Future of Digital Banking - Übergangslos, mobile, abschlussstark!
 
Lascialo in Rete (set.2007)
Lascialo in Rete (set.2007)Lascialo in Rete (set.2007)
Lascialo in Rete (set.2007)
 
Next generation learning - social, integrated and business-focussed
Next generation learning - social, integrated and business-focussedNext generation learning - social, integrated and business-focussed
Next generation learning - social, integrated and business-focussed
 
When worlds collide - leveraging learning content as brand experience
When worlds collide - leveraging learning content as brand experienceWhen worlds collide - leveraging learning content as brand experience
When worlds collide - leveraging learning content as brand experience
 
Kelly Ruggles
Kelly RugglesKelly Ruggles
Kelly Ruggles
 
GraFiorio Portfolio
GraFiorio PortfolioGraFiorio Portfolio
GraFiorio Portfolio
 
Welcome to Thackley
Welcome to ThackleyWelcome to Thackley
Welcome to Thackley
 

Plus de Takuya ASADA

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
Takuya ASADA
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Takuya ASADA
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
Takuya ASADA
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレット
Takuya ASADA
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
Takuya ASADA
 
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
Takuya ASADA
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
Takuya ASADA
 

Plus de Takuya ASADA (20)

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
 
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meetingOSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
 
OSvパンフレット v3
OSvパンフレット v3OSvパンフレット v3
OSvパンフレット v3
 
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/FallOSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
 
OSv噺
OSv噺OSv噺
OSv噺
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
Linux network stack
Linux network stackLinux network stack
Linux network stack
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminal
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレット
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
 
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 

Genkidama: P2Pコンテンツキャッシュ共有システム

  • 1. Genkidama: P2P @syuu1228
  • 3. Genkidama • • • DHT Genkidama • • ”NicoCache” • DHT ”OverlayWeaver”
  • 4. Genkidama • •   •
  • 5. Genkidama Genkidama get/put DHT get/put Web
  • 6. Genkidama ○ Genkidama get/put DHT get/put Web
  • 7. NicoCache • • → • →
  • 8. Genkidama • →DHT get/put DHT
  • 9. DHT • DHT(Distributed Hash Table: ) • P2P • dht.put(key, value); value = dht.get(key); • DHT join dht.join(bootstrapNode); •
  • 10. DHT 4bit 12 • • successor(key) • key successor(key) • 12 successor(12) = 13
  • 12. DHT • get • put • : prefix + ID nc:sm1152439 • : → put
  • 13. URL • HTTP Genkidama • HTTP URL http://124.32.128.131:50001/nc/sm11152439 • HTTP NicoCache URL
  • 14. Genkidama ○ Genkidama get/put DHT get/put Web
  • 15. • • • • DHT →
  • 16. XMLRPC • IP:port →XMLRPC DB • onlineUsers.fetch() • DHT onlineUsers.register() • cron •
  • 17. XMLRPC DB • • • • •
  • 18. Genkidama ○ Genkidama get/put DHT get/put Web
  • 19. Web • Genkidama Web Dashboard(http://genkidama.us/) • • Genkidama • • • • IP DB IP
  • 20. Genkidama GUI • AWT GUI • Dashboard Genkidama GUI • Web Genkidama • JavaScript Genkidama HTTP →JS http://localhost:50001/ URL Genkidama http://localhost:50001/restart GET Genkidama • HTTP → http://genkidama.us/local/ http://localhost: / •
  • 21. Genkidama • Genkidama HTTP proxy.pac • • firefox extention
  • 22. NicoCache DHT • HTTPServer • XMLRPC • NAT • DHT • Ajax GUI • firefox extention
  • 23. NAT • UPnP NAT Traversal • ex: A B • → • UDP Hole Punching • HTTP(TCP) • NAT →
  • 24. DHT • Genkidama join →OverlayWeaver • • •