Bitcoin Forum
August 11, 2024, 02:15:25 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 »  All
  Print  
Author Topic: [Методичка] Программирование скриптов Bitcoin.  (Read 16361 times)
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 25, 2018, 06:58:27 PM
 #41


Вы принципиально не хотите отвечать на вопрос про то, как будет выглядеть состояние
системы, когда транзакция с комиссией для релея отправляется одновременно десяти или ста пирам?


Я думал, что уже ответил... Попробую еще раз: с транзакцией произойдет ровно то же самое, что происходит со всеми IP пакетами которые я посылаю одновременно 100500 узлам биткоина. Каждый узел уменьшает TTL на единицу добавляет к транзакции свой выход (откусывает часть комиссии) и посылает пакет транзакцию дальше. Когда TTL комиссия станет равным нулю, IP пакет транзакцию дальше релеят только альтернативно одаренные ноды.



Заплатить одному процессингу (банку) будет всегда выгоднее, чем как-то разбросать комиссию
крошками по сети без гарантий доставки.


Доставка будет. Альтруисты никуда не денутся. Сеть как и сейчас будет работать по принципу: сегодня я тебе сделал релей, завтра ты мне сделаешь.

Всё наебалово биткойна сводится к тому, что в оригинальном
изложении профит от майнинга рассматривался не в денежном эквиваленте, а наподобие
всеобщего блага.

В оригинальном изложении денежный эквивалент не рассматривается потому, что биткоин это и есть деньги. По оригинальной задумке - это фиат надо рассматривать в биткоин эквиваленте, а не наоборот.


OpenTrade - Open Source Cryptocurrency Exchange
bitaps
Member
**
Offline Offline

Activity: 148
Merit: 45

https://bitaps.com/


View Profile WWW
November 25, 2018, 07:26:59 PM
 #42

А есть где почитать, где ты развенчиваешь миф о новой экономической парадигме? Если это были дискусси публичные, на каком либо форуме.
Либо можешь потратить еще немного усилий и вкратце развенчать этот миф для меня? Я понятливый, схватываю на лету, много слов не надо Smiley

Вот тут пересказываю своими словами:
https://bitcointalk.org/index.php?topic=2183362.msg48214176#msg48214176

Если для тебя это недостаточно убедительно, то поищи в профайле Амаклина среди всех сообщений и в старом аккаунте, который amaclin без цифры 1. Прелесть форума в том, что Амаклину не приходится быть попугаем и доносить до каждого в отдельности - ищи и обрящешь.

Я не прошу быть попугаем ни кого, попросил по нормальному ссылку если есть, ведь не перечитывать мне теперь всю историю чьих то сообщений, если можно просто спросить где прочитать. И да просьба была не к вам, так что давайте право сказать "Иди по гугли, я не попугай" давайте оставим Амаклину.

fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
November 25, 2018, 11:42:06 PM
Last edit: November 26, 2018, 12:41:19 AM by fxpc
 #43

Я думал, что уже ответил... Попробую еще раз: с транзакцией произойдет ровно то же самое, что происходит со всеми IP пакетами которые я посылаю одновременно 100500 узлам биткоина. Каждый узел уменьшает TTL на единицу добавляет к транзакции свой выход (откусывает часть комиссии) и посылает пакет транзакцию дальше. Когда TTL комиссия станет равным нулю, IP пакет транзакцию дальше релеят только альтернативно одаренные ноды.

Между отправкой IP пакетов и твоим предложением есть 2 большие разницы. Можешь объяснить с какой практической целью ты желаешь достичь race condition?

Доставка будет. Альтруисты никуда не денутся. Сеть как и сейчас будет работать по принципу: сегодня я тебе сделал релей, завтра ты мне сделаешь.

Правильно, поэтому платить любым релеям незачем, они и сейчас релеят всё даром. Зачем платить, в чём профит? Чтобы зарабатывали те кто нихуя не делает пересылает IP пакеты? Что дальше, плата за весь трафик внутри сети? Прогресс это сокращение издержек, а от увеличения количества посредников они только растут - лохчейн распухнет, скорость распространения транзакций упадёт, средняя комиссия вырастет.

В оригинальном изложении денежный эквивалент не рассматривается потому, что биткоин это и есть деньги. По оригинальной задумке - это фиат надо рассматривать в биткоин эквиваленте, а не наоборот.

С тем же успехом в оригинальном изложении можно было бы утверждать, что биткоин это ответ на вопрос о жизни, вселенной и вообще. На сарае вовсе написано "хуй", а внутри лежат дрова, поэтому декларации в большинстве случаев не совпадают с объективной реальностью.

Я не прошу быть попугаем ни кого, попросил по нормальному ссылку если есть, ведь не перечитывать мне теперь всю историю чьих то сообщений, если можно просто спросить где прочитать. И да просьба была не к вам, так что давайте право сказать "Иди по гугли, я не попугай" давайте оставим Амаклину.

Во-первых, "погугли" пишется слитно. Во-вторых, когда это я утверждал что ты просишь его быть попугаем? Речь шла лишь о том, что положение вещей позволяет тебе получить данную информацию не прибегая к подобным просьбам. Я предоставил тебе вполне конкретную ссылку, где своими словами пересказываю позицию Амаклина, а также указал 2 направления для поиска именно его изречений. Интересно - ищи, не интересно - не ищи. Если мои утверждения о новой экономической парадигме по вышеназванной ссылке расходятся с позицией Амаклина, то думаю он не станет об этом умалчивать. По-моему, ты путаешь право с обязанностью. Когда Амаклин кому-то сообщает что информация есть в его старых постах, то они идут и ищут, потому что ценность информации превышает издержки связанные с её поиском, ты же пытаешься эти издержки переложить на Амаклина. Это некрасиво, если выражаться культурно, что всё труднее делать, учитывая твою наглость.

amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
November 26, 2018, 03:54:37 AM
 #44

А есть где почитать, где ты развенчиваешь миф о новой экономической парадигме?

Давай не в этом топике. Это все-таки суб-форум "кодеры" и тема про биткойновский скрипт-язык.


Я думал, что уже ответил... Попробую еще раз: с транзакцией произойдет ровно то же самое, что происходит со всеми IP пакетами которые я посылаю одновременно 100500 узлам биткоина. Каждый узел уменьшает TTL на единицу добавляет к транзакции свой

Бред какой-то. ТТL используется для того, чтобы предотвратить циклы в маршрутизации.
Сеть же не без глюков работает. Где-то новые каналы появляются, где-то исчезают.
Чтобы предотвратить хождение по кругу - я при релее пакетов уменьшаю на 1 TTL
И не релею пакеты с TTL=0

Разница в том, что TCP/IP-пакет идет по маршруту. Я часть этого маршрута, принимаю с одной стороны,
отправляю в другую сторону. Биткойн-пакеты идут броадкастом всем пирам (по запросу).
И сохраняются на узлах как неподтвержденные транзакции.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 26, 2018, 04:20:36 AM
 #45

Разница в том, что TCP/IP-пакет идет по маршруту. Я часть этого маршрута, принимаю с одной стороны,
отправляю в другую сторону. Биткойн-пакеты идут броадкастом всем пирам (по запросу).
И сохраняются на узлах как неподтвержденные транзакции.

В некоторых P2P протоколах тоже есть TTL. Не важно броадкастом или нет посылается сообщение, TTL нужен чтобы не захламлять сеть невостребованными пакетами. В протоколе биткоина нет TTL потому что нужно уметь отдавать транзакции даже тем клиентам которые в оффлайне и даже тем которых нет в природе.

TTL протоколу битка не нужен, но вот комиссии нужны как показала практика. Но сейчас комиссии достаются только майнерам. У остальных нод нет экономического стимула находиться в сети. Если такой стимул появится, то нод в сети будет на порядки больше.

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
November 26, 2018, 04:31:20 AM
 #46

В протоколе биткоина нет TTL потому что нужно уметь отдавать транзакции даже тем
клиентам которые в оффлайне и даже тем которых нет в природе.
Щито?  Grin
Вы вслушайтесь в то что говорите! Ну прочитайте фразу, которую вы написали.
По словам прочитайте! Какие впезду (простите за мой плохой французский)
транзакции для клиентов в оффлайне? Кому вы хотите послать транзакции когда
говорите про клиентов, отсутствующих в природе? Неандертальцам, динозаврам,
селеноидам (жителям Луны)? Их нет в природе. Может в мир сказочных эльфов?
Карлсону на крышу?

Quote
TTL протоколу битка не нужен, но вот комиссии нужны как показала практика.
Комиссии не нужны. Но всем хочется бабла на халяву. Будет ли бабло
за биткойн или изобретут передачу пива по интернету - это неважно.

Quote
У остальных нод нет экономического стимула находиться в сети.
Если такой стимул появится, то нод в сети будет на порядки больше.
Нахуй они нужны?
Если экономический стимул появится для меня постоять на улице у светофора
(допустим, за стояние там в краснобелом шарфике вы мне заплатите сотку грина)
я так и быть постою полчасика. Но вы стараетесь подвести экономическую основу
под простое стояние на улице? На хуя это всем остальным? Кто за это захочет
платить, если на улице и так куча народу стоит бесплатно?
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 26, 2018, 04:47:25 AM
 #47

В протоколе биткоина нет TTL потому что нужно уметь отдавать транзакции даже тем
клиентам которые в оффлайне и даже тем которых нет в природе.
Щито?  Grin
Вы вслушайтесь в то что говорите! Ну прочитайте фразу, которую вы написали.
По словам прочитайте! Какие впезду (простите за мой плохой французский)
транзакции для клиентов в оффлайне? Кому вы хотите послать транзакции когда
говорите про клиентов, отсутствующих в природе? Неандертальцам, динозаврам,
селеноидам (жителям Луны)? Их нет в природе. Может в мир сказочных эльфов?
Карлсону на крышу?

Мда, с французким у вас не очень ))
Как с английским?

Quote
There are two ways to send money.  If the recipient is online, you
can enter their IP address and it will connect, get a new public
key and send the transaction with comments.  If the recipient is
not online, it is possible to send to their Bitcoin address, which
is a hash of their public key that they give you.  They'll receive
the transaction the next time they connect and get the block it's
in.  This method has the disadvantage that no comment information
is sent, and a bit of privacy may be lost if the address is used
multiple times, but it is a useful alternative if both users can't
be online at the same time or the recipient can't receive incoming
connections.


Quote
TTL протоколу битка не нужен, но вот комиссии нужны как показала практика.
Комиссии не нужны.

Нужны и вы это знаете не хуже меня.
Без комиссий сеть заспамят как это уже было... Кстати, а не вы ли лично проэксплуатировали это? Или я что-то путаю?

Quote
У остальных нод нет экономического стимула находиться в сети.
Если такой стимул появится, то нод в сети будет на порядки больше.
Нахуй они нужны?

Для децентрализации?

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
November 26, 2018, 05:04:52 AM
 #48

Мда, с французким у вас не очень ))
Как с английским?

Quote
There are two ways to send money.  If the recipient is online, you
can enter their IP address and it will connect, get a new public
key and send the transaction with comments.  If the recipient is
not online, it is possible to send to their Bitcoin address, which
is a hash of their public key that they give you.  They'll receive
the transaction the next time they connect and get the block it's
in.  This method has the disadvantage that no comment information
is sent, and a bit of privacy may be lost if the address is used
multiple times, but it is a useful alternative if both users can't
be online at the same time or the recipient can't receive incoming
connections.

Это шо за херня? Мемуары Сатоши Накамото о том, как отправлять биткойны на IP-адрес
если реципиент в онлайне и на его публичный ключ (хэш публичного ключа) если он в оффе?
Ну так сразу потом была всеми признана и понята ошибка, что этих двух способов не нужно.
Бо отправка на IP-адрес небезопасна с точки зрения MitM
И с тех пор уже 10 лет мы отправляем биткойны типа вариантом, когда не беспокоимся
о том, находится ли получатель в онлайне или оффлайне. А так называемый онлайн-вариант
давно выпилили на ненадобностью.

И к сетевом протоколу взаимодействия нод это не имеет никакого отношения

Quote
Нужны и вы это знаете не хуже меня.
Без комиссий сеть заспамят как это уже было... Кстати, а не вы ли лично проэксплуатировали это? Или я что-то путаю?
Специально сеть транзакциями не спамил.
Бывало, посылал без комиссии майнерам, но в весьма скромных количествах.
Вообще, отправка без комиссий не создавала каких-то серьёзных спам-эффектов.
Другое дело, что это несправедливо, что богатые платят за отправку меньше, чем
бедные. Да и просто количество транзакций выросло - решили что пора платить всем
в зависимости от объема транзакции в байтах.

Quote
Для децентрализации?
А она нахер нам спеклась сама по себе?
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 26, 2018, 05:17:33 AM
 #49


И к сетевом протоколу взаимодействия нод это не имеет никакого отношения


Из того, что вы ранее сказали я понял, что по вашему TTL нужен только для протоколов где пакеты идут по определенному маршруту.
Я знаю, что это точно не так. В P2P протоколах TTL тоже есть.
Но я знаю также, что в биткоине TTL нет.
Я пытался обосновать: почему в протоколе биткоина нет TTL. В других P2P протоколах TTL есть, а в биткоине нет. У вас есть свое этому объяснение? Да ради бога.

в зависимости от объема транзакции в байтах.

Quote
Для децентрализации?
А она нахер нам спеклась сама по себе?


Чтобы меньше контролеров-блокировщиков было у пересылки моих бабок из точки А в точку Б.

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
November 26, 2018, 05:23:07 AM
 #50

Чтобы меньше контролеров-блокировщиков было у пересылки моих бабок из точки А в точку Б.
Во-первых, в биткойн-сети нет передачи бабок из точки А в точку Б.
Когда говорят о пересылке монет - это лишь образное выражение.

Во-вторых, чтобы было меньше (потенциальных) блокировщиков - надо вообще избавиться от релей-нод.
Тогда их совсем не будет.  Grin


 
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 26, 2018, 05:38:14 AM
 #51

Чтобы меньше контролеров-блокировщиков было у пересылки моих бабок из точки А в точку Б.
Во-первых, в биткойн-сети нет передачи бабок из точки А в точку Б.
Когда говорят о пересылке монет - это лишь образное выражение.

Во-вторых, чтобы было меньше (потенциальных) блокировщиков - надо вообще избавиться от релей-нод.
Тогда их совсем не будет.  Grin


 

Во-пераых это кому как.
Для меня передача битков из А в Б тождественна передаче бабок. Особенно если А это Дядя Смит, а Б это я.
Во-вторых тоже не так. Релеи могут че-то блокировать конечно, но когда релеев много, то блокировщики просто посылаются лесом в обход.

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
November 26, 2018, 05:49:39 AM
 #52

Во-пераых это кому как.
Для меня передача битков из А в Б тождественна передаче бабок. Особенно если А это Дядя Смит, а Б это я.
Я говорю о технической точке зрения, а не об обыденных понятиях

Quote
Во-вторых тоже не так. Релеи могут че-то блокировать конечно, но когда релеев
много, то блокировщики просто посылаются лесом в обход.
Стоп. Вы чуть выше пели про вариант что релей которому не заплатили транзакцию
дальше не пересылает. Это ли не блокировка? Вас будут в этой парадигме блокировать
не потому что вы оппозиционер и покупаете вещества для создания бомбы, а потому что
вы мало заплатили. Вам этот вариант чем-то больше нравится? Ладно. Мне пора прощаться.
Эта тема (про донаты релеям) мне более не интересна. Я всё, что хотел сказать - сказал.

Далее спорить бессмысленно. Вы предлагайте вариант как вы его изобрели и посмотрим
потом все вместе насколько он рабочий. Спорить о том, что как будет хорошо ехать
машина, если к ней в багажник еще положить лошадь я считаю пустой тратой времени.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
November 26, 2018, 06:45:33 AM
Last edit: November 26, 2018, 09:06:45 AM by kzv
 #53

Да я и не собираюсь это реализовывать пока что.
Тема с комиссиями релеям возникла как одно из возможных направлений изучения технологии биткоина. Другие направления которые с ходу крутятся в голове:
1. Лайтинг и атомарные свопы. Вроде как уже изучено и задокументировано, но с практикой как-то тормозится пока.
2. Обмен письмами через блокчейн и его скрипты. Это уже есть в точечных проектах, но неплохо было бы изучить подробней. Особенно возможности шифрования сообщений.
3. "Цветные монеты". Типа токены только на биткоине и его скриптах, а не на эфире. Тоже уже где-то видел такое, но почему-то намного меньше распространение получила тема чем то же самое в эфире
Ну и так далее...

OpenTrade - Open Source Cryptocurrency Exchange
rulin
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
February 28, 2019, 02:12:33 PM
 #54

Объясните как с помощью bitcoin-cli отправить транзакцию с кастомным скриптом, например скриптом который не проверяет валидацию hash160:
asm: OP_2DROP OP_TRUE
hex: 6d51

Пытался в тестовой сети создать транзакцию так:

Code:
bitcoin-cli createrawtransaction '[{"txid":"<txhex>","vout":0}]' '[{"<p2sh-segwit address>":0.01}]'

Code:
bitcoin-cli signrawtransactionwithkey '<hex из createrawtransaction>' '["<wif private key>"]' '[{"txid":"<txhex>","vout":0, "scriptPubKey":"6d51"}]'

Получаю ошибку:

Code:
error code: -22
error message:
Previous output scriptPubKey mismatch:
OP_HASH160 <hash160> OP_EQUAL
vs:
OP_2DROP 1

Что не так, почему он хочет чтоб скрипт у меня был такойже как и в vout был?

amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
February 28, 2019, 02:51:37 PM
 #55

Объясните как с помощью bitcoin-cli отправить транзакцию с кастомным скриптом, например скриптом который не проверяет валидацию hash160:
asm: OP_2DROP OP_TRUE

Ты этот скрипт куда хочешь записать? Прям в scriptPubkey?
Такой вариант в тестнете пройдет, а в основной сети не сработает

Почему я спрашиваю об этом?
Потому что кроме этого есть еще два (как минимум) варианта: p2sh и p2wsh
Эти два варианта сработают и в основной сети
rulin
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
February 28, 2019, 03:11:38 PM
 #56

Прям в scriptPubkey?

А куда еще можно?

Такой вариант в тестнете пройдет, а в основной сети не сработает

Это почему? Разьве тестнет не полный аналог маин сети, но только с другими префиксами?

Потому что кроме этого есть еще два (как минимум) варианта: p2sh и p2wsh

Мне не принципиально, можно и p2sh, я всеровно пока плохо разбираюсь чем разные типы транзакций отличаются друг от друга по функционалу скриптинга


amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
February 28, 2019, 03:24:01 PM
 #57

Это почему? Разьве тестнет не полный аналог маин сети, но только с другими префиксами?
Не полный. В основной сети есть несколько стандартных вариантов скриптов, которые допустимы
в scriptPubkey. Транзакция с нестандартными скриптами в основной сети не релеится и с вероятностью
99.9999% никогда не подтвердится.

Quote
Мне не принципиально, можно и p2sh, я всеровно пока плохо разбираюсь чем разные типы
транзакций отличаются друг от друга по функционалу скриптинга
Окей, ща тебе нарисую.
amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
February 28, 2019, 03:48:00 PM
Merited by kzv (5)
 #58

Окей, ща тебе нарисую.

1. Хотим использовать скрипт OP_2DROP OP_TRUE Он же 6d51

2. Заходим в консоль. Пишем
decodescript 6d51
получаем
Code:
{
  "asm": "OP_2DROP 1",
  "type": "nonstandard",
  "p2sh": "2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA"
}

3. Отправляем биткойн на адрес 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA обычным способом
https://testnet.smartbit.com.au/tx/c75d15c40a6498319b4fa7d828f3234f100d53aa6a0caad3c7c5043c810dacd0

4. Теперь с адреса 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA можно вывести бабло
зная этот скрипт 6d51 и правила его выполнения, ну то есть ему надо подсунуть
"два чего-нибудь неважного" что он выкинет.

5. То есть сразу в хексе я могу записать каким будет scriptSig: 0000026d51

6. Тут я формирую транзакцию своей тулзой (я не использую bitcoin-cli) и вывожу с этого адреса себе обратно.
https://testnet.smartbit.com.au/tx/13804697568b067b846fafd3a6e15a94ecacb53f7811c4896e5fc1bbc650816f

Там в правом верхнем углу есть кнопочка со стрелочками - если на нее кликнуть - откроется подробная
информация о транзакции. И там как раз написан скрипт 0 0 6d51 - то есть сперва два
пустых значения засовываются в стек, а потом как раз выполняется то что нужно - 6d51 -
выкинуть два значения из стека и положить единичку

Таким образом мы перевели бабло с адреса 2N6ijRkcgBwzjvwwop9QRuEdBTeggPcSCpA на адрес
mg6Xg6sRvJzcQzMTuGPVYAV1XxQbhHnvJR используя скрипт OP_2DROP OP_TRUE и не
используя никаких подписей и приватных ключей

Теперь вопрос. Как сформировать такую же транзакцию, но без моей тулзы, а штатным bitcoin-cli ?
Вот это уже мне сложно - тут щас подумать придется Smiley Может кто-то другой подскажет?
rulin
Newbie
*
Offline Offline

Activity: 38
Merit: 0


View Profile
February 28, 2019, 04:32:56 PM
 #59

Тут я формирую транзакцию своей тулзой

Твоя тулза не опенсурсная? на Гитхабе есть?

Теперь вопрос. Как сформировать такую же транзакцию, но без моей тулзы, а штатным bitcoin-cli ?
Вот это уже мне сложно - тут щас подумать придется Smiley Может кто-то другой подскажет?

да, вот это бы, очень хотелось понять

amaclin1
Sr. Member
****
Offline Offline

Activity: 826
Merit: 317


View Profile
February 28, 2019, 04:57:15 PM
 #60

Твоя тулза не опенсурсная? на Гитхабе есть?
Нету. Фактически, это ведь не тулза, а большая коллекция говна, которую
я умело (сам себя не похвалишь - никто не похвалит) и быстро приспосабливаю
каждый раз под решение подобных задач

Quote
да, вот это бы, очень хотелось понять
Ну ты сперва попробуй понять, то ли это что тебе нужно в конечном итоге?
Если да - я либо разберусь как это делать с помощью bitcoin-cli (но опыта с ним у меня мало)
либо просто такую тулзу тебе скомпилирую под твои цели.
Pages: « 1 2 [3] 4 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!