What's finished yet?
====================

[startcols: 2]
	* Real-world:
		* Register
		* Connect to gateway
		* Change game server to use
	* Internal Services Machines:
		* File Server
		* View Logs
		* View Records
		* View Links
		* Console:
			* Destroy computers
	* Central Mainframes:
		* Elliptic curve cypher
		* Voice check
	* International Banks:
		* About Us
		* Manage Existing Account
		* Create New Account:
			* View Account Information
			* View Statement
			* Transfer Money
			* Manage Loan
		* 100c-deduction every quarter if the player still has a positive loan
		* 300c-deduction every hour for using of the MyLink-gateway
	* Public Access Servers
	* Voices (i.e. admins you call to get their voice)
	* Global Criminal Database:
		* Add convinction
		* Authorize arrest
		* Clear history
	* Academic Database:
		* Add qualification
		* Clear qualifications
	* Social Security Database:
		* Date of birth
		* Marital status
		* Personal status
	* Access Terminals
	* Personal Computers
	* New user:
		* Automatic database entry creation for:
			* ADB
			* GCD
			* SOCSEC
	* MyLink Internal Services Machines:
		* News:
			* ARREST (e.g. because of GCD manipulations)
			* ARRESTCC (because of getting passive traced)
			* BREAKATTEMPT
			* BROKENIN
			* DATALOSS
			* SYFILES
			* DOWN
		* Missions
		* Software Upgrades
		* Hardware Upgrades:
			* Install new hardware
			* Remove previously installed hardware
		* Gateway  Upgrades
	* InterNIC:
		* Browse
		* Admin
		* Other NICs exist, too
	* Webservers (new concept)
	* Virii (in this implementation a new concept)
	* Other players (=network play):
		* File Server
		* View Records
		* View Wallet
		* Firewalls:
			* Level 1: Password necessary (crack via PWDBreaker)
			* Level 2: PWD necessary (crack via PWDBreaker), player gets informed
			* Level 3: PWD necessary (crack only via DictH4x0r), player gets informed
		* Player's gateways can only be hacked if their players are logged in
	* HUD:
		* Map (small, top right)
		* Map (big, you can select bounces)
		* Map show the status of a trace
		* Mails (recv + reply with attachments)
		* Status
		* Local memory bank
		* Run Prgs
		* Wallet (for storing of known username/password-combinations; _new_ conzept)
		* Connection analysis
	* Software:
		* <<File_Deleter>>
		* <<File_Copier>>
		* <<Decrypter_v1>> to <<Decrypter_v7>>
		* <<Encrypter_v1>> to <<Encrypter_v7>>
		* <<Password_Breaker>>
		* <<Dictionary_Hacker>>
		* <<Trace_Tracker_v1>>
		* <<Trace_Tracker_v2>>
		* <<HUD_MapShowTrace>>
		* <<Log_Deleter_v1>>
		* <<Log_Deleter_v2>>
		* <<Log_UnDeleter>>
		* <<Log_Modifier>>
		* <<Record_Extor>>
		* <<Record_Creator>>
		* <<IP_Lookup>>
		* <<HUD_ConnectionAnalysis>>
		* <<Firewall_Disable>>
		* <<Firewall_Bypass>>
		* <<Voice_Analyzer>>
		* <<Decypher>>
		* <<Record_Extor>>
		* <<Record_Creator>>
		* <<Firewall_v1>>
		* <<Firewall_v2>>
		* <<Firewall_v3>>
		* <<Server_Editor>> and <<Mission_Editor>>
		* <<AV_Kit_v1>>
[endcols]

Requirements
============

MyLink needs the following Perl-modules installed:
	* Frontier::Client,
	* Frontier::Daemon, and
	* Tk.

Installing of these modules is simple: Simple execute (as r00t):
	| perl -MCPAN -eshell
	| force install Frontier::Client
	| force install Frontier::Daemon
	| force install Tk
Or, even simpler, install the packets of your distribution.

Architecture
============

MyLink uses a XMLRPC-server (TCP-port 5003) as storage for the MyLink world,
and a Tk-client as GUI.

Note: The whole database can be shown with
	| perl -MStorable -MData::Dumper -we 'print Dumper(lock_retrieve "database.db")'

Datafiles
=========

MyLinkd.pl stores the world in the file <<database.db>>. But, you may wonder,
what are the files in the <<data/>>-subdirectory good for?

The files in <<data/>> are used to restore the original state of the
<<database.db>> (e.g. without users). If you want to reset the <<database.db>>,
you can use
	| perl -MFrontier::Client -MData::Dumper -we 'print Dumper (Frontier::Client->new(url=>"http://localhost:5003/RPC2",debug=>1)->call("reset"))'

Currently, the following server types are supported:
	; I: Internal Services Machine;
	; F: File Server;
	; U: Public Access Server;
	; C: Central Mainframe;
	; V: Voice (e.g. admins can call to get their voice pattern);
	; B: International Bank;
	; N: InterNIC;
	; M: Mission Server (e.g. Uplink Internal Services Machine);
	; GCD: Global Criminal Database;
	; ADB: Academic Database;
	; SOCSEC: Social Security Database;
	; AT: Access Terminal;
	; PC: Personal Computer;
	; W: Webserver;

Additionally, the missions are stored in <<data/stdmissions/>>.

Rules when creating new companies
=================================

	* Each company has to have an own subnet (x.y.z.1-254).
	* The names of each host of a company has to be Uplink-like (eg. Internal
		Services Machine, etc.).

Creating new hosts
==================

Use the included server editor or edit the datafiles in <<data/>> directly.

The files' structure isn't very complex, they are play Perl sources which are
<<eval()>>ed by MyLinkd.pl on receiving a <<reset>> XMLRPC request. Use the
password <<"getRandPWD">> if you want your hosts to have random
passwords which automatically change after a break-in.
