Code» Governance in IRC Channels 65 4.1 Principalchanneldesign
Total Page:16
File Type:pdf, Size:1020Kb
Code Governance «Code» as Regulation in a Self-governed Internet Application from a Computer Science Perspective vorgelegt von Diplom-Informatiker Kei Ishii von der Fakutät IV – Elektrotechnik und Informatik der Technischen Universität Berlin zur Erlangung des akademischen Grades Doktor der Ingenieurswissenschaften – Dr. Ing. – genehmigte Dissertation Promotionsausschuss: Vorsitzender: Prof. Dr. Bernd Mahr Berichter: Prof. Dr. Bernd Lutterbeck Berichter: Prof. Dr. Hans-Ulrich Heiß Tag der wissenschaftlichen Aussprache: 7. Juli 2005 Berlin 2005 D 83 Contents Main Hypotheses 15 Introduction 17 I Internet, Governance, and «Code» 21 1 Internet Governance and «Code» 23 1.1 InternetGovernance. .. .. .. .. .. .. .. .. 23 1.2 ”AndHowShallthe’NetBeGoverned”? . .. 23 1.3 Governance ................................... 25 1.4 «Code»asRegulationModality . .. 26 2 «Code» Governance: An Empirical Analysis 29 2.1 TheChoiceoftheObjectofAnalysis. .... 29 2.2 MainHypothesis ................................ 30 2.3 TwoModelsofRegulation . 30 2.3.1 ”Lex Informatica”: Key Aspects of a Regulation System ....... 31 2.3.2 TypesofRules ............................. 33 2.4 TechnicalNotesontheAnalysis . ... 34 II Empirical Analysis of the Internet Relay Chat 37 3 The Internet Relay Chat 39 3.1 TheFunctionalPerspective–UsingtheIRC . ...... 40 3.1.1 Ahypotheticaluserscenario . 40 3.1.1.1 Channels........................... 41 3.1.1.2 PrivateMessages . 42 3.1.1.3 CTCP(Client-to-ClientProtocol) . 43 3.1.1.4 IRCCommands ....................... 43 3 Contents 3.1.2 SizeandGrowthoftheIRC . 44 3.2 AConceptualViewoftheTechnologyofIRC . .... 46 3.2.1 ”Polity”:StructuralOverviewoftheIRC . .... 46 3.2.1.1 IRCServer.......................... 47 3.2.1.2 IRCClient.......................... 47 3.2.1.3 IRCUserBot ........................ 48 3.2.1.4 IRCService ......................... 49 3.2.1.5 IRCNetwork ........................ 50 3.2.2 ”Politics”:AProcessualViewoftheIRC . ... 52 3.2.2.1 TheClient-serverarchitecture . 52 3.2.2.2 InsidetheIRCserverprocess . 53 3.2.3 ”Policy”: IRC Server Installation and Configuration . ........ 54 3.2.3.1 InstallationoftheIRCserver . 55 3.2.3.2 IRCserverconfiguration . 58 3.2.4 Technicalenvironmentandcodedistribution . ...... 59 3.3 MainSocialRolesintheIRC. 60 3.3.1 IRCadministrator ........................... 61 3.3.2 IRCServiceadministrator . 61 3.3.3 Coder.................................. 62 3.3.4 IRCuser ................................ 62 3.3.5 IRCoperator .............................. 63 3.3.6 Channeloperator ............................ 64 4 «Code» Governance in IRC Channels 65 4.1 PrincipalChannelDesign. .. 66 4.2 NumberedChannels............................... 68 4.2.1 FunctionalDesign ........................... 69 4.2.2 TechnicalImplementation . 70 4.2.3 The ”Maximum Users Per Channel” Channel Property . .... 72 4.3 NamedChannels - a Major Change in«Code» Governance . ...... 77 4.3.1 Names,modes,andthechanneloperator. ... 77 4.3.2 «Code» Evolves – Further Changes in Channel Design . ..... 81 5 Sanctions in the IRC 87 5.1 The/killCommand–ImmediateSanction . .... 88 5.1.1 FunctionalityandImplementation . ... 88 5.1.2 Changesinthe/killcommand . 89 5.2 TheK-Line–EntryDenialSanctions . ... 92 4 Contents 5.2.1 Functional description and technical implementation......... 92 5.2.2 Config linescomplementingK-linesanctioning . ...... 94 5.3 AccesstoK-linesforIRCoperators . .... 97 5.3.1 First experiment – Undernet’s /kline and /addline commands .. .. 98 5.3.2 /klineandexceptionsintheEFnet . 100 5.4 Beyond/killsandK-lines. 101 5.4.1 Delegating sanctioning power – Channel modes, kicks andbans . 101 5.4.2 Non-Sanctioning«Code»Remedies . 102 6 Nickname and Channel Ownership 109 6.1 Nicknames, Channel Names, and Early Ownership Policies .......... 110 6.1.1 Nicknames ............................... 110 6.1.2 Channelnames ............................. 112 6.2 PolicyChangesWithBotsandServices . .... 113 6.2.1 ChannelControlwiththeEggdropuserbot . 113 6.2.2 TheNickServservicebot. 116 6.3 IRCChannelRegistrationServices . ..... 118 6.3.1 Channel Registration in the DALnet: ChanServ Service ........ 119 6.3.1.1 Channelregistration . 120 6.3.1.2 Channelmanagementfeatures. 121 6.3.2 Channel Registration in the Undernet: The X/W Service ....... 123 6.3.2.1 Channelregistration . 123 6.3.2.2 Channel management: The X and W channel service bots . 125 7 Controlling the Controllers? 129 7.1 IRCOperator–PowerandControl . 129 7.2 NominatingIRCoperatorsandIRCopNetiquette . ....... 132 7.3 NoticesandLogs ................................ 135 7.3.1 Notices ................................. 136 7.3.2 Logging................................. 140 7.4 TheUndernetUWorldService . 140 7.4.1 AbouttheUWorldService . 141 7.4.2 Functionality .............................. 142 7.4.2.1 UWorldcommands . 143 7.4.2.2 UWorldautomaticfunctions . 146 7.4.3 UWorldUserAccess . 148 7.4.4 Control in UWorld: Information,Notices, and Logs . ...... 149 5 Contents 8 IRC Network Issues 155 8.1 «Code» Architecture Shapes the Social Constitution . ........... 155 8.1.1 IRC: Topology, Data Distribution and Technical Rationale . 155 8.1.2 DNS: Topology, Data Distribution and Technical Rationale. 158 8.1.3 Comparison between the IRC and DNS architectures . ..... 160 8.1.4 ArchitectureasConstitution . 161 8.2 The"GreatSplit": TheForkingofAnetandEFnet . ....... 162 8.2.1 Open-server servers vs. closed-server servers . ........ 163 III Some Notes on the Concept of «Code» Governance 165 9 Lex Informatica Revisited 169 9.1 Framework ................................... 169 9.2 Jurisdiction ................................... 170 9.3 Content ..................................... 172 9.4 Source...................................... 173 9.5 CustomizedRulesandCustomizationProcesses . ........ 174 9.5.1 Rulecustomizationonthe«code»level . 175 9.5.1.1 Sourcecodeaccess . 175 9.5.1.2 Systemaccess . .. .. .. .. .. .. 178 9.5.1.3 Interfaceaccess . 179 9.5.1.4 Useraccess ......................... 180 9.6 PrimaryEnforcement .............................. 181 10 Rule Types in «Code» 183 11 Outlook 185 11.1 Validating and Refining the «Code» Governance model . ......... 185 11.2 Computer Science Implications from «Code» Governance .......... 188 IV Appendix 191 12 IRC Chronology 193 12.1 1989–TheBirthoftheInternetRelayChat . ...... 193 12.2 1989-1990 – Copyright, named channels and the "great split"......... 194 12.3 1990-1992–GrowthandDevelopment. .... 195 12.4 1993–Thefirstsuccessfulfork:Undernet . ....... 196 6 Contents 12.5 1994–Anotherfork:DALnet . 196 12.6 1996–IRCnetforksoffEFnet . 196 12.7 TheIRCSourceCodeCopyright . 197 13 Tools for the Examination of the IRC Source Code 199 13.1 InSearchoftheRightTool . 199 13.2 AMakeshiftSolution . 202 13.3TheAnalysis .................................. 203 14 List of IRC server source code packages 205 14.1Onet....................................... 205 14.2EFnet ...................................... 205 14.2.1 Standard ................................ 205 14.2.2 +CS................................... 205 14.2.3 +thandHybrid ............................. 207 14.3Undernet .................................... 207 14.4IRCnet...................................... 209 Bibliography 211 7 Contents 8 List of Tables 2.1 LexInformatica(Reidenberg,1998,p.569) . ....... 31 3.1 Configuration lines in server version irc2.1.1 (Oct. 1989)........... 59 3.2 SocialRolesintheIRC............................. 61 4.1 Common commands in connection with IRC channels (Pioch, 1993) ..... 68 5.1 Changes inthe /kill commandcode..................... 92 6.1 DALnetChannelServiceOfficials . 122 6.2 X/Wuserlevels................................. 125 7.1 IRCoperatorprivilegedcommands. .... 131 7.2 Notices sent to IRCops in irc server versionirc2.1.1 . ........... 138 7.3 Uworldcommandsandaccesslevel . 149 7.4 Uworldcommandstriggeringnotices. ..... 151 14.1 Onetserverversions. 205 14.2 EFnetserverversions2.5and2.6. ..... 206 14.3 EFnetserverversions2.7and2.8. ..... 206 14.4 EFnet+CS(comstud)versions . 207 14.5 EFnet server versions +th and HybridUndernet server versions u2.9 and u2.10 208 14.6 Undernetserverversions2.8 . .... 208 14.7 Undernetserverversionsu2.9andu2.10 . ....... 209 14.8 EFnetserverversions2.7and2.8. ..... 210 9 List of Tables 10 List of Figures 1.1 Four RegulationModalities(Lessig,1999a, p.88) . .......... 27 3.1 Initial messages when joining an IRC network (Undernet, onJan6,2004) . 41 3.2 Exampleconversation in the IRC channel ”#hottub” . ......... 42 3.3 SnapshotofachannellistintheUndernet . ...... 44 3.4 IRCgrowthfrom1988tolate1995. .. 45 3.5 ElementsofanIRCnetwork . 47 3.6 Treetopology .................................. 50 3.7 Undernetnetwork(around1993).. .... 51 3.8 BasicIRCclient-serverconfiguration . ...... 52 3.9 Modeloftheserverprocess. .. 54 3.10 IRCserverinstallationsteps . ..... 55 4.1 IRCTimeline–NumberedChannels . .. 69 4.2 Linkedlistforchannels . .. 71 5.1 Flood block with /ignore .......................... 104 5.2 Flood block with /silence .......................... 105 6.1 StepstoSetUpanEggdropBot . 114 8.1 Spanningtreetopology . 156 8.2 Treetopologyasa”tree” . 159 8.3 QueryingaDomainName ........................... 160 11 List of Figures 12 List of Algorithms 1 The struct Channel datastructure(slightlysimplified) . 70 2 Channellimitcheckin m_channel() .................... 73 3 is_full()andUnLimChannel()functions . ..... 74 4 MAXUSERSPERCHANNELdirective . 74 5 Startup option (commented out) for maxusersperchannel . ......... 75 6 OPER_KILL directive .............................