La documentacion expuesta a continuacion se basa en la version 5.0 de DarkU.
Algunas de las tablas usadas en dicho IRCu son compatibles con versiones anteriores, pero algunas otras han
sido cambiadas. Ademas de esto, la validez de esta informacion con versiones posteriores no esta asegurada.
Si desea una versión vieja del DarkU puede descargarla desde la página Web de
ZipBreake http://www.jfv.es/.
|
Las bases de datos del IRCu son una serie de ficheros con el nombre tabla.*,
donde * va desde la A hasta la Z, todas en letras minusculas. En cada una de estas tablas se guardan
los datos que la tabla ha de contener, como pueden ser nicks, vmasks, IPs y demas.
El sistema de db es un sistema en el cual todos los servidores de la red contienen los
datos de cada tabla, para lo cual el IRCu cuenta con un sistema de comunicacion entre servidores, mediante el
cual las db de los servidores se mantienen sincronizadas entre ellas, y todos los IRCus guardan la misma informacion.
Para evitar conflictos en los datos contenidos se utiliza un numero de serie en cada registro, con lo cual,
en un NETJOIN la tabla que tenga el numero de serie mas alto es la mas actual. Ademas de esto, para evitar problemas,
solo los servidores marcados como HUB tienen permiso para enviar su db a otros servidores en caso de necesidad.
Este ultimo sistema de seguridad puede conllevar problemas, porque si alguien actualiza la db de un HUB sin el permiso
pertinente del resto de la red, dicho cambio sera enviado a todos los demas servidores.
Gracias a que las db estan duplicadas en cada uno de los servidores, estas funcionan de igual
manera en caso de NetSplit, y si se da el caso de que en el NetJoin el hub principal contiene nuevos datos, todos
los servidores son actualizado segun van entrando en la red. De esta caracteristica de que las bases de datos se
distribuyan automaticamente entre servidores les viene el nombre de Bases de Datos Redistribuidas.
Para introducir datos en la db desde un nodo de control o un nodo de bots, se utilizaria el
comando de distribucion de db's entre nodos (para ello siempre el nodo de control debe tener permisos de HUB).
DB [servidor] [numero de serie] [tabla] [nick] :[valor]
A partir de v4.10 de DarkU, cualquier nodo con U-line no podra hacer uso del comando DB,
de este modo los nodos de bots no podran modificar las tablas a traves de este comando. No obstante, para suplir esta
carencia, se implementa un nuevo comando para ser usado por los nodos de control para la modificacion de la db:
TABLA ADD [servidor] [tabla] [nick] :[valor]
Este comando realiza la misma funcion que el comando DB, sustituye los viejos o borra
un registro, es decir, cambia un valor contenido en la db.
Para reiniciar una tabla de toda la red (eliminar todos los registros de dicha tabla y resetear
los seriales de la misma a 0), es necesario que todos los HUBs de la red esten conectados, ya que si alguno de los HUBs no
esta presente, en el momento que vuelva a la red el resto de HUBs tomaran la db de este. Este reseteado de una db en
concreto sirve, por ejemplo, para borrar todos los registros de una tabla si esta quiere ser anulada (no usarla mas).
En el caso de que el reset sea local, el comando se envia indicando el servidor, y la db borrada es la del servidor
indicado. Acto seguido, dicho servidor retomara una nueva db del HUB central.
Para que el reseteado sea efectivo en toda la red, en el comando se sustituye servidor por *:
TABLA RESET [servidor] [tabla]
Para saber el numero de registros y de serial en las tablas de un servidor, se utiliza el comando
/stats b, a lo que el servidor responde algo similar a:
b Tabla 'b' Registros=000000006 (S=000000008)
b Tabla 'i' Registros=000000002 (S=000000002)
b Tabla 'n' Registros=000000005 (S=000000007)
b Tabla 'm' Registros=000000001 (S=000000001)
b Tabla 'o' Registros=000000004 (S=000000004)
b Tabla 'r' Registros=000000002 (S=000000010)
b Tabla 'v' Registros=000000004 (S=000000006)
b Tabla 'w' Registros=000000001 (S=000000003)
End of /STATS report
En este caso, el numero tras la S= se corresponde con el numero de serial, y el que esta
tras Registros= es el numero de registros que realmente son validos.
Otra gran utilidad es compactar las db para que ocupen el menor espacio posible en disco.
Para realizar esto, en el caso de ser toda la red el servidor sera sustituido por el parametro *.
DB [servidor] [numero de serie] [tabla] * :.
NOTA: El compactado de db's es inutil a partir de DarkU 4.10 ya que este se realiza de forma automatica.
Para borrar un registro de una tabla de las db se utiliza el mismo formato, pero en el valor
se dejara el campo vacio.
Para consultar el valor asociado a un registro, se utiliza el comando /dbq cuya sintaxis
es:
/DBQ [servidor] [tabla] [nick]
Para consultar un dato referente a todos los servidores, debes poner * en servidor.
Espero que esta informacion referente al sistema de db sirva de algo. Yo, por mi parte, intentare
que la informacion contenida en esta pagina este lo mas actualizada y completa posible.
En caso de necesidad, para mayor informacion acerca del funcionamiento del sistema db original, se puede consultar la
Web de JCea, el creador del sistema (developer de IRC-Hispano).
La web es http://irc.argo.es/~jcea/
|
Las tablas del DarkU y que contiene cada una:
- Tabla a - Encargada de la gestión cuentas de usuario.
- Tabla b - Encargada de la configuración general del la red.
- Tabla c - Encargada de los registros de canales (+r).
- Tabla i - Encargada de la gestión y control de clones.
- Tabla k - Encargada de la gestión y control de K-lines.
- Tabla m - Encargada de la gestión de IPs virtuales para IPs.
- Tabla n - Encargada del registro de nicks (+r).
- Tabla o - Encargada de la gestion de operadores (+p, +h, +a, +c).
- Tabla r - Encargada de la gestión de Bots de servicio (+B, +b).
- Tabla v - Encargada de la gestión de IPs virtuales para nicks de usuarios.
- Tabla w - Encargada de la gestión de IPs virtuales modificadas totalmente.
La TABLA a
Guarda la informacion sobre las cuentas de usuario.
DB * [num serie] m er_maqui@darkbolt.net :DxZ3[5hFNt
TABLA ADD * m er_maqui@darkbolt.net :DxZ3[5hFNt
En este caso, tendriamos una cuenta a nombre de Er_Maqui@DarkBolt.NeT con la contraseña encriptada DxZ3[5hFNt.
La TABLA b
Es la tabla de configuraciones generales para unos parámetros predefinidos que son:
- NickServ - Establece el nick que tendrá NickServ.
- ChanServ - Establece el nick que tendrá ChanServ.
- OpersChan - Establece el canal de logueo.
- finvmask - Establece el final de las v-masks genericas (el .virtual).
- domain - Establece el dominio para las masks de opers etc.. (nick.oper.dominio).
- cifrado - Establece la clave de cifrado para las v-masks genericas.
- fullmsg - Mensaje que se mostrará si un servidor está lleno.
- msgclones - Mensaje que se mostrará si intentas exceder tus clones.
- urlmap - Si se define no muestra /MAP y /LINKS y configura el mensaje a mostrar.
- fakeserver - Si se define cambia el mensaje de servidor al que nos conectamos por su contenido en /WHOIS.
Ejemplos:
DB * [num serie] b NickServ :NiCK!-@-
DB * [num serie] b OpersChan :#opers
TABLA ADD * b NickServ :NiCK!-@-
TABLA ADD * b OpersChan :#opers
El resto de los valores se introducen de igual modo que los anteriores.
La TABLA c
Esta es la tabla en la que se registran los canales que usaran el sistema de persistencia, y que seran controlados
desde la misma db como se espera sean todos los canales en un futuro. La tabla contiene informacion suficiente
para poder mantener un canal sin necesidad de bots.
Un ejemplo práctico:
DB * [num serie] c #darkbolt :+nt-msi
TABLA ADD * c #darkbolt :+nt-msi
En este ejemplo registrariamos en la tabla el canal #darkbolt con el mlock +nt-msi
La TABLA i
Es la tabla de control de clones en ella se fijan los clones correspondientes a una IP/Mask.
Para introducir clones a una determinada IP o Mask se introducira la IP o Mask y como valor el número
de clones a fijarle. Veamos un ejemplo práctico:
DB * [num serie] i 127.0.0.1 :100
TABLA ADD * i 127.0.0.1 :100
Para este caso se añadirian 100 clones para la IP 127.0.0.1.
La TABLA k (No Operativa)
K-lines permantes
La TABLA m
Fija las V-Maks virtuales para IPs fijas
DB * [num serie] m 127.0.0.1 :conexion.con.clones.darkbolt.net
TABLA ADD * m 127.0.0.1 :conexion.con.clones.darkbolt.net
Todos los usuarios que entren desde esa IP saldrán prefijados con esa V-Maks.
La TABLA n
Es la tabla en la que se registran los nicks con la correspondiente clave. Si un nick esta registrado
en la tabla n se te otorgara el modo +r al identificarte pero deberás identificarte poniendo/nick NICK:clave.
Los nicks registrados en las tablas tendrán la clave encriptada con el algoritmo TEA donde la clave de encriptacion para la clave
sera el propio nick.
Un ejemplo práctico:
DB * [num serie] n er_maqui :DxZ3[5hFNt
TABLA ADD * n er_maqui :DxZ3[5hFNt
Donde habria que especificar el nick y DxZ3[5hFNt sería la clave encriptada con el TEA (NOTA: la clave
la puse al azar asi que no os mateis a rebentarla que no sirve de nada xD).
La TABLA o
Es la encargada de los representantes. En ella ira el nick del operador y un valor que representa su status entre:
NIVEL |
STATUS |
MODO |
VMASK |
1 |
Pre Operador |
+p |
nick.preoper.domain |
2 |
Desarrollador |
+e |
nick.devel.domain |
3 |
Operador |
+h |
nick.oper.domain |
5 |
Operador Avanzado |
+v |
nick.advoper.domain |
8 |
Co Administrador |
+c |
nick.coadmin.domain |
10 |
Administrador |
+a |
nick.admin.domain |
13 |
Administrador de red |
+n |
nick.netadmin.domain |
Para que el registro de un nick en esta tabla sea valido, anteriormente dicho nick tiene que estar en la tabla N.
Cada status, lleva asociado un modo, y una vmask que prevalece a las vmasks de la tabla V.
Ejemplo de introducción de datos:
DB * [num serie] o er_maqui :13
TABLA ADD * o er_maqui :13
La TABLA r
Es la tabla destinada al registro de Robots (Bots de servicio). Esta tabla
funciona de igual modo que la tabla o introduciendo en ella el nick del Bot y el nivel
que tendrá el BOT.
Por defecto los valores serán de 10 (Bot NO oficial) y 5 (Bot oficial).
Para registrar un nick en esta tabla será necesario registrarlo en la tabla N con anterioridad.
Los nicks en esta tabla podrán ponerse el modo +B ó +b que los reconoce como Bots.
Ejemplo de introducción de datos:
DB * [num serie] r darkbolt :5
TABLA ADD * r darkbolt :5
La TABLA v
Fija una IP virtual personal para un nick
DB * [num serie] v er_maqui :soy.el.jefe
TABLA ADD * v er_maqui :soy.el.jefe
Se asignaría al nick Er_Maqui de forma automática la IP virtual XXXXXX.YYYYYY.soy.el.jefe.finvmask
La TABLA w
Fija una IP virtual personal para un nick
DB * [num serie] v er_maqui :soy.el.jefe
TABLA ADD * v er_maqui :soy.el.jefe
Se asignaría al nick Er_Maqui de forma automática la IP virtual soy.el.jefe
|