Bitcoin

Bitcoin ist die erste digitale Währung, die nicht zentral gesteuert wird. Stattdessen verwaltet eine verteilte Datenbank die Kontostände aller Teilnehmer und generiert neues Geld anhand einer fest vorgegebenen Rate. Der technische Trick, der ein solches System möglich macht, ist, dass die Veränderung des globalen Zustandes im verteilten Systems einen Proof-of-Work voraussetzt. Damit wird vor allem verhindert, dass Bitcoins mehrfach ausgegeben werden und dass Kontostände gefälscht werden - beides allerdings nur so lange über 50% der Rechenkapazität im verteilten System ehrlich arbeiten.

Dieser Vortrag erläutert die technischen Details des Bitcoin-Systems und deren Implikationen für Teilnehmer und Betreiber. Volkswirtschaftliche Themen und der alltägliche Krieg ums Geld werden nur am Rande behandelt, da ich mich damit nicht auskenne.

--> -->

Thema:

Bitcoin

Termin:

9.1.2012 - 20 Uhr

Ort:

H20, Uni Ulm

Vortragender:

Alexander Bernauer

AssertionError

multiple archives found for page

If you want to report a bug, please save this page and attach it to your bug report.

Traceback

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

  1. /home/wiki/instance-1.7.1/python/MoinMoin/request/__init__.py in run (self=<MoinMoin.request.request_cgi.Request object>)

    1. 1308 self.page.send_page()
    2. 1309 else:
    3. 1310 handler(self.page.page_name, self)
    4. 1311
    5. 1312 # every action that didn't use to raise MoinMoinFinish must call this now:
    • handler = <function do_show>
    • self = <MoinMoin.request.request_cgi.Request object>
    • self.page = <MoinMoin.Page.Page object>
    • self.page.page_name = u'ChaosSeminar/2012/01_Bitcoin'
  2. /home/wiki/instance-1.7.1/python/MoinMoin/action/__init__.py in do_show (pagename=u'ChaosSeminar/2012/01_Bitcoin', request=<MoinMoin.request.request_cgi.Request object>, content_only=0, count_hit=1, cacheable=1, print_mode=0)

    1. 251 count_hit=count_hit,
    2. 252 print_mode=print_mode,
    3. 253 content_only=content_only,
    4. 254 )
    5. 255
    • content_only = 0
  3. /home/wiki/instance-1.7.1/python/MoinMoin/Page.py in send_page (self=<MoinMoin.Page.Page object>, **keywords={'content_only': 0, 'count_hit': 1, 'print_mode': 0})

    1. 1212 format_args=pi['formatargs'],
    2. 1213 do_cache=do_cache,
    3. 1214 start_line=pi['lines'])
    4. 1215
    5. 1216 # check for pending footnotes
    • start_line undefined
    • pi = {'acl': <MoinMoin.security.AccessControlList instance>, 'format': 'wiki', 'formatargs': '', 'language': 'en', 'lines': 0}
  4. /home/wiki/instance-1.7.1/python/MoinMoin/Page.py in send_page_content (self=<MoinMoin.Page.Page object>, request=<MoinMoin.request.request_cgi.Request object>, body=u"== Bitcoin ==\n\nBitcoin ist die erste digitale W\xe4...'' ||\n|| '''Archiv:''' || <<Archive>> ||\n", format='wiki', format_args='', do_cache=1, **kw={'start_line': 0})

    1. 1296
    2. 1297 if not (do_cache and self.canUseCache(Parser)):
    3. 1298 self.format(parser)
    4. 1299 else:
    5. 1300 try:
    • self = <MoinMoin.Page.Page object>
    • self.format = <bound method Page.format of <MoinMoin.Page.Page object>>
    • parser = <MoinMoin.parser.text_moin_wiki.Parser instance>
  5. /home/wiki/instance-1.7.1/python/MoinMoin/Page.py in format (self=<MoinMoin.Page.Page object>, parser=<MoinMoin.parser.text_moin_wiki.Parser instance>)

    1. 1317 def format(self, parser):
    2. 1318 """ Format and write page content without caching """
    3. 1319 parser.format(self.formatter)
    4. 1320
    5. 1321 def execute(self, request, parser, code):
    • parser = <MoinMoin.parser.text_moin_wiki.Parser instance>
    • parser.format = <bound method Parser.format of <MoinMoin.parser.text_moin_wiki.Parser instance>>
    • self = <MoinMoin.Page.Page object>
    • self.formatter = <MoinMoin.formatter.text_html.Formatter instance>
  6. /home/wiki/instance-1.7.1/python/MoinMoin/parser/text_moin_wiki.py in format (self=<MoinMoin.parser.text_moin_wiki.Parser instance>, formatter=<MoinMoin.formatter.text_html.Formatter instance>, inhibit_p=False)

    1. 1527
    2. 1528 # Scan line, format and write
    3. 1529 formatted_line = self.scan(line, inhibit_p=inhibit_p)
    4. 1530 self.request.write(formatted_line)
    5. 1531
    • formatted_line = u'<tr> <td><span class="anchor" id="line-10"></sp...ine862"> <em>Alexander Bernauer</em> </td>\n</tr>\n'
    • self = <MoinMoin.parser.text_moin_wiki.Parser instance>
    • self.scan = <bound method Parser.scan of <MoinMoin.parser.text_moin_wiki.Parser instance>>
    • line = u"|| '''Archiv:''' || <<Archive>> || "
    • inhibit_p = False
  7. /home/wiki/instance-1.7.1/python/MoinMoin/parser/text_moin_wiki.py in scan (self=<MoinMoin.parser.text_moin_wiki.Parser instance>, line=u"|| '''Archiv:''' || <<Archive>> || ", inhibit_p=False)

    1. 1343 self.in_table or self.in_list):
    2. 1344 result.append(self.formatter.paragraph(1, css_class="line867"))
    3. 1345 result.append(self.replace(match, inhibit_p))
    4. 1346 end = match.end()
    5. 1347 lastpos = end
    • result = [u'<tr> <td><span class="anchor" id="line-11"></span>', '<p class="line862">', u' ', '<strong>', u'Archiv:', '</strong>', u' ', '</td>\n <td>', '<p class="line862">', u' ']
    • result.append = <built-in method append of list object>
    • self = <MoinMoin.parser.text_moin_wiki.Parser instance>
    • self.replace = <bound method Parser.replace of <MoinMoin.parser.text_moin_wiki.Parser instance>>
    • match = <_sre.SRE_Match object>
    • inhibit_p = False
  8. /home/wiki/instance-1.7.1/python/MoinMoin/parser/text_moin_wiki.py in replace (self=<MoinMoin.parser.text_moin_wiki.Parser instance>, match=<_sre.SRE_Match object>, inhibit_p=False)

    1. 1385 # Get replace method and replace hit
    2. 1386 replace_func = getattr(self, '_%s_repl' % type)
    3. 1387 result.append(replace_func(hit, match.groupdict()))
    4. 1388 return ''.join(result)
    5. 1389 else:
    • result = []
    • result.append = <built-in method append of list object>
    • replace_func = <bound method Parser._macro_repl of <MoinMoin.parser.text_moin_wiki.Parser instance>>
    • hit = u'Archive'
    • match = <_sre.SRE_Match object>
    • match.groupdict = <built-in method groupdict of _sre.SRE_Match object>
  9. /home/wiki/instance-1.7.1/python/MoinMoin/parser/text_moin_wiki.py in _macro_repl (self=<MoinMoin.parser.text_moin_wiki.Parser instance>, word=u'Archive', groups={u'big': None, u'big_off': None, u'big_on': None, u'comment': None, u'dl': None, u'email': None, u'emph': None, u'emph_ib_or_bi': None, u'emph_ibb': None, u'emph_ibi': None, ...})

    1. 1310 if self.macro is None:
    2. 1311 self.macro = macro.Macro(self)
    3. 1312 return self.formatter.macro(self.macro, macro_name, macro_args, markup=groups.get('macro'))
    4. 1313 _macro_name_repl = _macro_repl
    5. 1314 _macro_args_repl = _macro_repl
    • self = <MoinMoin.parser.text_moin_wiki.Parser instance>
    • self.formatter = <MoinMoin.formatter.text_html.Formatter instance>
    • self.formatter.macro = <bound method Formatter.macro of <MoinMoin.formatter.text_html.Formatter instance>>
    • self.macro = <MoinMoin.macro.Macro instance>
    • macro_name = u'Archive'
    • macro_args = None
    • markup undefined
    • groups = {u'big': None, u'big_off': None, u'big_on': None, u'comment': None, u'dl': None, u'email': None, u'emph': None, u'emph_ib_or_bi': None, u'emph_ibb': None, u'emph_ibi': None, ...}
    • groups.get = <built-in method get of dict object>
  10. /home/wiki/instance-1.7.1/python/MoinMoin/formatter/__init__.py in macro (self=<MoinMoin.formatter.text_html.Formatter instance>, macro_obj=<MoinMoin.macro.Macro instance>, name=u'Archive', args=None, markup=u'<<Archive>>')

    1. 312 # call the macro
    2. 313 try:
    3. 314 return macro_obj.execute(name, args)
    4. 315 except ImportError, err:
    5. 316 errmsg = unicode(err)
    • macro_obj = <MoinMoin.macro.Macro instance>
    • macro_obj.execute = <bound method Macro.execute of <MoinMoin.macro.Macro instance>>
    • name = u'Archive'
    • args = None
  11. /home/wiki/instance-1.7.1/python/MoinMoin/macro/__init__.py in execute (self=<MoinMoin.macro.Macro instance>, macro_name=u'Archive', args=None)

    1. 126 else:
    2. 127 raise ImportError("Cannot load macro %s" % macro_name)
    3. 128 return execute(self, args)
    4. 129
    5. 130 def _m_lang(self, text):
    • execute = <function execute>
    • self = <MoinMoin.macro.Macro instance>
    • args = None
  12. /home/wiki/instance-1.7.1/data/plugin/macro/Archive.py in execute (macro=<MoinMoin.macro.Macro instance>, text=None)

    1. 48 if len(dirs) == 0:
    2. 49 return u"es stehen noch keine Daten im Archiv zur Verfgung"
    3. 50 assert len(dirs) == 1, "multiple archives found for page"
    4. 51 page_path = dirs[0] + "/"
    5. 52
    • builtin len = <built-in function len>
    • dirs = ['201201-bitcoins', '201201-Bitcoins']

AssertionError

multiple archives found for page

  • args = ('multiple archives found for page',)
  • message = 'multiple archives found for page'

System Details

  • Date: Sat, 19 Apr 2014 14:28:57 +0000
  • Platform: Linux dontpanic 2.6.32-5-686 #1 SMP Mon Sep 23 23:00:18 UTC 2013 i686
  • Python: Python 2.6.6 (/usr/bin/python)
  • MoinMoin: Release 1.7.1 (release)