pydatazrh / meetup

The PyData Zurich meetup
37 stars 16 forks source link

Blockchain in Python #31

Closed kmader closed 6 years ago

kmader commented 7 years ago

Not sure how clickbait friendly this group is, but I really enjoyed this article and project (https://hackernoon.com/learn-blockchains-by-building-one-117428612f46?gi=22fca9a00cda) and accompanying repository (https://github.com/dvf/blockchain) and I think having a tutorial on it could be interesting / potentially attract quite a few new people. Plus actually writing a bit of code goes a long way to demystifying the endless hype.

betatim commented 7 years ago

I'd be interested. Not having read the article I suspect we'd make this the exclusive topic of a meetup?

cc @d-simon

betatim commented 6 years ago

I'd like to try out having a one hour meetup where we try and go through this as a group. Maybe for the December meetup as "Christmas special". Maybe have three speakers that work as a team instead of just one.

How could we organise it so that people who are new to blockchain and/or not super fit in python still get something out of it? Maybe we live code it between the three speakers, and people in the room can run it. Try to modify the history of the blockchain, etc instead of everyone trying to code it interactively?

I'd be up for being one of the three people.

kmader commented 6 years ago

I would also be willing to present, it also looks like we should be able to do some interactive demos with binder as long as we run everything on the local machine. I've adapted their example for kaggle so it runs the standard CURL commands to show how everything works (https://www.kaggle.com/kmader/slightly-more-advanced-blockchain/)

wolfv commented 6 years ago

@Leonidaz0r has some Blockchain experience at ETH.

markusbaden commented 6 years ago

Would be interested too

betatim commented 6 years ago

@kmader and others who would like to contribute to running this event: how do we get organised? We should announce this meetup soon, which means we need a bit of an idea who can make it from our side and what we plan on doing.

I would propose the following:

The meetup will be in the style of a tutorial. Some slides, some live coding, time for participants to code, slides, live coding, participants code, ... repeat. We follow the DIY blockchain article from https://github.com/pydatazrh/meetup/issues/31#issue-261998336 If we manage to cover steps 1, 2 and 3 we will be doing well I think. Leave step 4 for people to try at home, maybe demo it with some prepared code/nodes. Getting everyone on the same wifi so their laptops can talk to each other (ETH wifi ops probably has that firewalled) is a project++ by itself.

This means we need to make a shared set of slides on google docs, split up the code into good sections, and have a run through at some point to see how far away from 60minutes we are.

What do you think?

jakeret commented 6 years ago

Sounds like a good plan. Agree, we should announce that thing asap.

Three steps - three speakers (@betatim, @kmader, @markusbaden)?

We haven't settled on a date yet. betatim proposed some dates in an other discussion (#33). Unfortunately, I can't make it then. How about the Wed. 13. December? @betatim could you ping ETH for a room as soon as we know the date?

betatim commented 6 years ago

@TitusCornelius suggested he has a contact at DigiComp. Our ETH contact isn't at ETH for a while -> no room.

13.12. would also work for me as a date. To bring the discussion from #33 over here (so we stay on topic) I suggested 12.12. as preferred date, 14.12. as backup, but also fine with 13.12.

markusbaden commented 6 years ago

Happy to contribute as speaker or as helper. Worked through the original post and it's actually quite fun.

12.12, 13.12. And 14.12. Work for me

betatim commented 6 years ago

So should we make 13.12. the preferred date? @jakeret are you interested in being a helper/speaker/leader for this? If yes we'd have three people and can announce the meetup. If no then we should wait to announce until we have three. (We can announce and then swap someone afterwards, just want to avoid having only two people lead this session)

kmader commented 6 years ago

13.12 works for me, I also have a few routers I could bring if we want to test things there or could probably run everything on EC2 nodes using repo2docker or something like that. If people pregister we could setup everything in advance

Titus-von-Koeller commented 6 years ago

I havent heard back yet, but let‘s announce asap with the program and the location as TBD..

should know by Monday if it works out On Fri, Nov 17, 2017 at 18:27 Kevin Mader notifications@github.com wrote:

13.12 works for me, I also have a few routers I could bring if we want to test things there or could probably run everything on EC2 nodes using repo2docker or something like that. If people pregister we could setup everything in advance

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345309100, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO2--JF7hNh2UxbaYqI9L095DKagRks5s3cIWgaJpZM4PqQyM .

Titus-von-Koeller commented 6 years ago

TBD only regarding location of course On Fri, Nov 17, 2017 at 19:40 Titus von Köller titus@vonkoeller.com wrote:

I havent heard back yet, but let‘s announce asap with the program and the location as TBD..

should know by Monday if it works out On Fri, Nov 17, 2017 at 18:27 Kevin Mader notifications@github.com wrote:

13.12 works for me, I also have a few routers I could bring if we want to test things there or could probably run everything on EC2 nodes using repo2docker or something like that. If people pregister we could setup everything in advance

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345309100, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO2--JF7hNh2UxbaYqI9L095DKagRks5s3cIWgaJpZM4PqQyM .

jakeret commented 6 years ago

X-max special: Build your own Blockchain

Christmas is approaching and Santa has something very special for all the PyDatonions in his gift bag! Always wondered why everyone is so hyped about Blockchain? How does it work under the hood? Who needs a Blockchain anyway?

This time we’re going to have a hands-on session on this topic. Our speakers will team up and by implementing our own chain together we will explore the nitty-gritty details.

Titus-von-Koeller commented 6 years ago

sounds amazing 😉 so sad I can’t come 😔🙁

On Fri, Nov 17, 2017 at 20:26 Joel Akeret notifications@github.com wrote:

X-max special: Build your own Blockchain

Christmas is approaching and Santa has something very special for all the PyDatonions in his gift bag! Always wondered why everyone is so hyped about Blockchain? How does it work under the hood? Who needs a Blockchain anyway?

This time we’re going to have a hands-on session on this topic. Our speakers will team up and by implementing our own chain together we will explore the nitty-gritty details.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345342118, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSOyDKS6kSiakVUhF7qY-fO0XVU7Ojks5s3d3rgaJpZM4PqQyM .

betatim commented 6 years ago

Some slight edits to the announcement. I think we should encourage people to bring their own laptop fully kitted out. 👍 to bringing wifi routers, but I would try and design it so we do not need the internet/wifi for a successful tutorial (more like cherry on top bonus).

X-max special: Build your own Blockchain

Christmas is approaching and Santa has something very special for all the PyDatonions in his gift bag! Always wondered why everyone is so hyped about Blockchain? How does it work under the hood? Who needs a Blockchain anyway?

This time we’re going to have a hands-on session on this topic. Our speakers will team up and by implementing our own chain together we will explore the nitty-gritty details. This meetup will be a tutorial style meetup so please bring your own laptop with python 3, flask v0.12.2, and requests v2.18.4 installed and running.

betatim commented 6 years ago

Should we be presumptuous and assume yy-uge interest -> limit sign ups? How to deal with those that say they will come but never update their RSVP? Should we instead say "We will lock the door once the room is (too) full, so be early if you want to be sure to get a seat"?

sredford commented 6 years ago

X-max -> Xmas ? or is this a joke I don't get?

What will actually happen at the meetup is not clear to me from reading the announcement.

Our speakers will team up and by implementing our own chain together we will explore the nitty-gritty details.

could be read as the speakers are demonstrating the block chain, while the audience watches.

What about: Xmas special: Build your own Blockchain

Christmas is approaching and Santa has something very special for all the PyDataZuris in his sack! Always wondered why everyone is so hyped about Blockchain? How does it work under the hood? Who needs a Blockchain anyway?

This time we’re going to have a hands-on session. Our speakers will lead a tutorial. You on your laptop will build your own Blockchain. No prior experience is necessary, but please arrive with python 3, flask v0.12.2, and requests v2.18.4 installed and running.

jakeret commented 6 years ago

This thing is gaining momentum. Perfect! 👍 I like @sredford 's adaptions. @betatim Do we expect a lot of people do show up, considering it's close to Christmas? For the August meetup I had set an upper limit on meetup.com and people then seemed to take the RSVP more seriously

jakeret commented 6 years ago

I've created a draft on meetup.com. Should we publish it and update the location as soon as we know more?

betatim commented 6 years ago

I'd wait to see if we get a location update from @TitusCornelius during the morning and then publish without/with one this afternoon??

Maybe I am over-thinking it with the RSVP.

Titus-von-Koeller commented 6 years ago

Hope to get an answer by tmr, guy seems to be busy..

On Mon, Nov 20, 2017 at 7:17 AM Tim Head notifications@github.com wrote:

I'd wait to see if we get a location update from @TitusCornelius https://github.com/tituscornelius during the morning and then publish without/with one this afternoon??

Maybe I am over-thinking it with the RSVP.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345601597, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO-EmDBWQEdxAPA9deFjefEKdLjzeks5s4RldgaJpZM4PqQyM .

Titus-von-Koeller commented 6 years ago

alright! CONFIRMED!

could someone put the meetup online? i'm in the middle of sth right now..

Hallo Titus

Sorry, bin grad voll Land unter, darum habe ich mich noch nicht gemeldet.

Ja am 13.12. sollte das klappen. Ihr könnt das MEetup bei uns machen.

Dann können wir da auch gleich über weitere Zusammenarbeit reden. Location zum einbinden: https://www.digicomp.ch/standorte/zuerich Kannst du uns dann den LLink zur Meetup Event page noch senden?

Joe, bitte bei dir eintragen das wir am 13.12. ein Meetup bei uns haben.

Herzlichen Dank LG Lorenz

On Mon, Nov 20, 2017 at 4:00 PM Titus von Köller titus@vonkoeller.com wrote:

Hope to get an answer by tmr, guy seems to be busy..

On Mon, Nov 20, 2017 at 7:17 AM Tim Head notifications@github.com wrote:

I'd wait to see if we get a location update from @TitusCornelius https://github.com/tituscornelius during the morning and then publish without/with one this afternoon??

Maybe I am over-thinking it with the RSVP.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345601597, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO-EmDBWQEdxAPA9deFjefEKdLjzeks5s4RldgaJpZM4PqQyM .

Titus-von-Koeller commented 6 years ago

all right, still got to it. SCHEDULED! good job everyone :D

On Mon, Nov 20, 2017 at 4:53 PM Titus von Köller titus@vonkoeller.com wrote:

alright! CONFIRMED!

could someone put the meetup online? i'm in the middle of sth right now..

Hallo Titus

Sorry, bin grad voll Land unter, darum habe ich mich noch nicht gemeldet.

Ja am 13.12. sollte das klappen. Ihr könnt das MEetup bei uns machen.

Dann können wir da auch gleich über weitere Zusammenarbeit reden. Location zum einbinden: https://www.digicomp.ch/standorte/zuerich Kannst du uns dann den LLink zur Meetup Event page noch senden?

Joe, bitte bei dir eintragen das wir am 13.12. ein Meetup bei uns haben.

Herzlichen Dank LG Lorenz

On Mon, Nov 20, 2017 at 4:00 PM Titus von Köller titus@vonkoeller.com wrote:

Hope to get an answer by tmr, guy seems to be busy..

On Mon, Nov 20, 2017 at 7:17 AM Tim Head notifications@github.com wrote:

I'd wait to see if we get a location update from @TitusCornelius https://github.com/tituscornelius during the morning and then publish without/with one this afternoon??

Maybe I am over-thinking it with the RSVP.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345601597, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO-EmDBWQEdxAPA9deFjefEKdLjzeks5s4RldgaJpZM4PqQyM .

betatim commented 6 years ago

Meetup scheduled and public.

jakeret commented 6 years ago

And filling up really quickly 👍

Titus-von-Koeller commented 6 years ago

2 spots left, that was quick...

we should be strict about people canceling if they can‘t come, so that people can slip in from the waiting list. Maybe we should send out a message about that.

On Tue, Nov 21, 2017 at 08:39 Joel Akeret notifications@github.com wrote:

And filling up really quickly 👍

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-345942272, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO9n5yBxefnRmBVmRlYkeiRXck-ZOks5s4n4ygaJpZM4PqQyM .

betatim commented 6 years ago

I would make it "first come first seated" on the day. At least it is far too tedious to get people to actually cancel their RSVP, then print off a list, check names at the door, etc.

Also, how big is the room? :)

SeverinAlexB commented 6 years ago

I would prefer "first come first seated" too because there are always people which sign but don't show up.

The second reason is that it's already full after not even a day and I didn't get a place :grinning:

betatim commented 6 years ago

@TitusCornelius could you put us (Tim, Joel) all in touch with Lorenz from Digicomp?

Thoughts on trying to increase the size of the room? I'd be -0 on more than 50 attendees as it will make it more of a lecture and less interactive if we get too far from 1 helper per 10 participants (by that math the ideal number would be 30)

jakeret commented 6 years ago

I would also stick with the current number. If we look for a larger room there'll always be one who is not getting a seat and opting for an even larger room.

Based on the meetup experience there are always some signing up but not showing up. So I guess we will get close this ideal number

SeverinAlexB commented 6 years ago

Do you need another helper at the pydata blockchain special? I saw on meetup that you are worried about too few helpers. I know how a blockchain works and some people mingle I can program python pretty well.

SeverinAlexB commented 6 years ago

According to the almost non existing reaction, I guess no further help is needed?

betatim commented 6 years ago

I'd take the lack of reaction as a positive: no one objects :)

To get the ball rolling the beginning of slides. Mostly followed the structure of the article for the moment. Each orange slide is meant as "you do something now": live coding, audience typing, audience running things. For the transitions to not be too abrupt I would say 10min per orange section as typical time?

jakeret commented 6 years ago

@Sebubu, sorry for not replying. Help is very welcome. I guess as soon as we're preparing thing it will become much more clear where support is needed.

Thanks Tim for bringing momentum into this thing! I would suggest that we aim at an two hour session. Atm we have 5*10min of coding session. This leaves plenty of time to explain things. Any suggestion on how to split things up? Any preferences?

On Nov 29, 2017 08:06, "Tim Head" notifications@github.com wrote:

I'd take the lack of reaction as a positive: no one objects :)

To get the ball rolling the beginning of slides https://docs.google.com/presentation/d/1GaoGagHTQYcABOVAgY40T1SVCzFKpH6H_4T8jVZlnsU/edit?usp=sharing. Mostly followed the structure of the article https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 for the moment. Each orange slide is meant as "you do something now": live coding, audience typing, audience running things. For the transitions to not be too abrupt I would say 10min per orange section as typical time?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-347771873, or mute the thread https://github.com/notifications/unsubscribe-auth/ALSFv9o7wwz2M2SMeFI3pNh18j2dtlZeks5s7QJ5gaJpZM4PqQyM .

betatim commented 6 years ago

I'd try and aim to be done in 90m, with some time left for people to play by themselves/questions. Also we will over run ... :)

I'd suggest we have one laptop setup and connected. Introduce all four helpers at the start, one of us drives the laptop, the other three circulate around the room to help people who get stuck. Then we swap driver after ~1/4 of the time?

SeverinAlexB commented 6 years ago

That's going to be a sportive event if we want to do it within 90min incl. coding. How do we want to split up the talk?

betatim commented 6 years ago

Add some breakpoints you like. I think that is something to do once we have a better feeling how much content there is to each slide. I'd also be fine with us just swapping "live" when we feel like it.

Sportlich ist gut! Keeps you on your toes.

betatim commented 6 years ago

(The link tot he slides let's you edit them, so make use of that power.)

jakeret commented 6 years ago

I've adapted the original code such that the API is exposed in a swagger ui. If we push this to a cloud service we would have our first blockchain node with an ui.

betatim commented 6 years ago

Are we confident enough that there will be working internet in the room for everyone? We should also check with the host if nodes on the network can reach each other (if we want to do "now connect to your neighbours node"). Often conference wifis are configured to let you connect out but not to other devices on the network.


@jakeret your idea is that people eventually all connect to the same blockchain and we have the whole room together? And we use the cloud one as the "seed"? I think that would be cool. For your "cloud service" will heroku do?

jakeret commented 6 years ago

I'm about to push this to heroku. Should be online soon

Anyway, time is running. There are just a few days left for preparation. @kmader @markusbaden @betatim What is the overall status? Is there anything we should discuss / split up / delegate?

Titus-von-Koeller commented 6 years ago

@jakeret @betatim I forwarded you the email with the contact of Lorenz @ Digicomp Academy

On Tue, Dec 5, 2017 at 8:23 PM Joel Akeret notifications@github.com wrote:

I'm about to push this to heroku. Should be online soon

Anyway, time is running. There are just a few days left for preparation. @kmader https://github.com/kmader @markusbaden https://github.com/markusbaden @betatim https://github.com/betatim What is the overall status? Is there anything we should discuss / split up / delegate?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/pydatazrh/meetup/issues/31#issuecomment-349412598, or mute the thread https://github.com/notifications/unsubscribe-auth/AIoSO0pH90hLn47nHHeUg_cZUZUNYuY7ks5s9ZgggaJpZM4PqQyM .

jakeret commented 6 years ago

@TitusCornelius thanks just saw it.

The app is on heroku: https://blockchain-pydatazrh.herokuapp.com/#/default

betatim commented 6 years ago

I was working through the code yesterday to make some snippets to build up some of the ideas in part one (what is a chain, block, POW, etc). I will make a PR to your repo @jakeret to add some snippets tonight.

One thing that I didn't understand: why is the hash of the previous block not part of the POW calculation?

SeverinAlexB commented 6 years ago

I'm going to explain the consensus algorithm if nobody has already captured it.

SeverinAlexB commented 6 years ago

Hey guys, @betatim and I were talking about a short pre-meetup of the helpers. We currently are all working on different parts of the presentation and the purpose of this pre-meetup is to ensure a consistent presentation and not 4 single presentations in a row which leave important parts out.

Proposal: Tuesday, 5pm, Hiltl Sihlpost

I please every helper to give a short answer if he can attend this meetup.

betatim commented 6 years ago

I have time for meeting up on Tuesday and think it would be pretty useful to get everything synced (and us looking good on Wednesday evening)

markusbaden commented 6 years ago

:+1:

I can make it on Tuesday.

jakeret commented 6 years ago

Yeah sounds good. I'm in as well.

I can do the first part, intro, setting the scene, big picture