Bitcoin Forum
May 30, 2024, 07:44:17 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 »
61  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 09:43:11 PM

I now applied @xtester's OP proposal. I hope the "important contributors" part with the profile-links is OK. Otherwise say something and i delete it.

Not sure if anyone is more important than anyone else...maybe instead it could be more like a list of items delivered or in progress and who worked on them.
62  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 08:34:38 PM
can you please add this video to OP or website about this use case (Bitcoin Mining in ElasticPL) from dev?
https://vimeo.com/216378462


+1 @ImI

Most probably we will not be able to mine any block in BTC network but it's nice show-off of Elastic capabilities.

+1 I will add website as a blog post.
can somebody write content for this video for blog post?

On it.  :-)

When you write the content...please put it in perspective.  You cannot realistically mine BTC or any other coin with Elastic.  Even if you disregard all the overhead in Elastic to create the specialized network it runs in...updates to the block to mine would need to propogate through our blockchain...so it may take a minute or more just for an Elastic miner to know to move on to a new block.

I believe the demo he put together is good to show how to integrate external apps to the Elastic Network...but it should not lead anyone to believe that Elastic can be used to mine other blockchains of any type.
63  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 08:25:42 PM
I'm summarizing a lot, but that is the basic idea.

Even shorter version:  Instead of giving a machine and getting an input/output pair, you give a model of a machine's behavior, and get back an input/output pair's relationship to that machine.  Instead of having a chance to find a PoW certificate at the end of each work attempt (effort of which varies run to run) there is chance to find a PoW certificate for each individual value propagation in the program, which would be uniform both run-to-run and job-to-job.  A job requiring on average twice as many assignments per attempt would generate twice as many work proofs on average for the same number of attempts run.

I posted my last comment before I saw this.  These are great ideas and definitely worth exploring further...
64  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 08:20:20 PM
I guess with masternodes you mean so called SNs (supernodes), right?

Yes, I just use the generic, age-old p2p terminology for any form of systematic recentralization, regardless of the trendy term-of-the-day for it.  (... which seems to vary month-to-month anymore.)

Quote
Well, I didn't like them too. Not sure if it's possible at all at this stage, but perhaps with your support, it could be possible to think it over again, and get rid of those special nodes.

I doubt it is something that would get sorted out before you guys proceed with the lite wallet launch.  It isn't entirely clear to me what the XEL transition plan is from there, though.... so maybe it is something that could be done after or maybe it is something where we'd be talking about a new, distinct network.

HunterMinerCrafter, the SuperNode (or whatever we decide to call it) logic has not been coded yet and has no ties to the Lite Wallet being released soon.  I have coded the logic to perform the validation of POW / Bounty submissions, but EK has not had time yet to interface this logic into the Core Server, so we may have some time to refine the approach here...

Originally, I think EK's plan was to have all nodes (the Core Server) run the validation logic; however, the algorithms written in ElasticPL can potentially take quite a bit of time and memory to solve (i.e. seconds...depending on the complexity), so the validation logic could easily be used to attack the network (i.e. submit a complex job and throw 100's of solutions to the nodes to validate).

The next thought was to just have nodes running on higher performance hardware run the validation logic...but you'd still have to have all these nodes perform the validation so there was still too much traffic and overhead on the network, so at that point we looked at just having a small number of nodes to the validation, but then you'd still have the issue of a job author running their own malicious node.  So I believe this is when EK added the 250K XEL requirement...to deter anyone from creating a malicious node...basically, the network would trust the decision of a single node....which leads us to where we are today.

Clearly this idea can be improved upon (I have concerns over the 250K requirement as well as relying on a single SN's decision), but I am just coding the logic for the validation, so I can't really say what the best approach....and EK has been so busy I don't think he's had much time if any to think about it.

So as I posted earlier, I think its work discussing again...
65  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 05:18:22 PM
Dev algo  Huh Huh Huh Huh!!!!

WTF are you talking about?Huh  Huh Huh Huh Huh Huh

I'm talking about the algorithm

The algorithm is whatever the work author can dream up and code in ElasticPL...so XEL supports an infinite # of algorithms.
66  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] [XEL] :: Elastic - The Decentralized Supercomputer :: on: June 08, 2017, 05:17:28 PM
Guess who's back in town?
https://bitcointalk.org/index.php?action=profile;u=245263
Does he know he is more than invited to visit?


Thanks! It is nice to be noticed!  Grin

I've been lurking, and still following the progress of XEL closely week to week.  Unfortunately I can't say that I've been particularly happy to see where it has been headed, personally.  IMO the decision to partially re-centralize with bonded master-nodes and the decision to launch a "lite wallet" token are both likely mis-steps.

Having 0 stake in XEL it is obviously not my business, but I had held high hopes... and now I have little but worry for E-K's work ever making it out into the world in a form that is anything like what he would have really intended.

I've been thinking a lot, lately, about a the idea of a relatively simple variant of the earlier XEL design which might address several of the concerns with the model, particularly with regard to the PoW rewards.  It would eschew a dedicated programming language, in favor of a machine model, but at the same time make for a more consistent work calculation and allow for some additional assurances.  It may not be something I ever pursue further but I am ever more convinced (though still not quite 100%) that the whole thing might even actually be possible after all.

I guess with masternodes you mean so called SNs (supernodes), right? Well, I didn't like them too. Not sure if it's possible at all at this stage, but perhaps with your support, it could be possible to think it over again, and get rid of those special nodes.

The great thing about an open source project like this is that any developer can take it any direction they'd like as long as the community adopts it.

I'm open to ideas other than the SNs, just keep in mind there are a lot of constraints that need to be met.  So if people have alternate solutions for how a distributed network can fully validate the POW / Bounty submissions without creating a bottleneck, please provide your ideas.

I've also pitched a couple of alternate ideas to EK, but really he's pretty busy right now so this would probably be the best opportunity to revisit this topic before he has time to work on the Core Server again.

One last thing...regardless of what we do, maybe it would be best to change the name of it...even in the current design it's not a SuperNode the way other blockchains think of it.  It's simply a Core Server node that has the ability to run the ElasticPL engine to validate POW / Bounty submissions.
67  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: June 05, 2017, 07:30:04 PM
Guys. Last N pages I only see "good investment, I'll sell at Y, I'll not sell at Z". Do we really have here only people that want to earn some money on XEL?

When litewallet mainnet will be live, please sell and leave room for people that want to join and believe in this project.

We are searching for people that believe in our idea about making decentralized supercomputer. If you're in deep need for money and you want to buy some useless car (useless in a meaning that every car can bring you from point A to point B) just sell XEL and buy your car. I want to be part of this project and I want to create decentralized supercomputer with you.
I hope that many of you will exit XEL just to make room for people that also want to create something useful with us.

Well stated unvoid...I second your comments.
68  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: June 03, 2017, 09:25:13 PM
I have come up with an idea a dev may be interested in coding (originally I needed help with the SN interface but that is pretty much done now)...

One of my biggest concerns with XEL from a mining standpoint was that the jobs may be sporadic initially so many miners may avoid XEL as they don't want to have their rigs sit idle.  What I think would be great is if someone codes a mining management program that can run multiple miners (i.e. xel_miner, sgminer, cpuminer, etc) that watches over the Elastic network and if there are active jobs, it runs the xel_miner, and if there are no active jobs in Elastic, it would run a miner for a different blockchain (sgminer, cpuminer, etc) so their miners are always productive.

If anyone has questions about this idea or just wants to bounce ideas around, please PM me.
69  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: June 03, 2017, 08:49:16 PM
And Ethereum is not even Turing complete like XEL is.

XEL is not Turing complete...
70  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: June 02, 2017, 01:19:02 PM
First I want to commend EK and Unvoid for the great work they've been doing to get the Lite Wallet ready.

Just a quick update from my side...I've had some free time, so I was able to go ahead and code the SuperNode interface.  I now have a POC working so that the Core Server can talk to the SN to validate jobs, bounties, etc.  It will still be a couple weeks until I wrap up this piece, and of course it won't be complete until sometime after the Lite Wallet when EK has some time to code the Core Server side of the interface.
71  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: June 02, 2017, 01:14:06 AM
Someome on slack channel ask this question, can someone provide a good answer

--
just read about Elastic being able to run on GPU
anyone knows if it will it be possible to code deep learning modules in it?
if it possible to build a neural network with thousands of nodes it will be a killer use case, competing with Google level infrastructure
--

I don't know enough about neural networks to really answer this question; however, I would think that many of the various algorithms needed could be created in ElasticPL.  What I don't know is how much data would need to be stored / shared between nodes for even a basic neural network.  We are still working through the data storage part of the design.
72  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 27, 2017, 10:24:02 PM
(…)

I'm not sure this answers your specific question, but the design already allows the job author to set multiple iterations which provide bounties as well as specific criteria for what qualifies as a bounty for each iteration.  once all bounties for an iteration is done the miners all move  to the next iteration

Well, I didn't have a specific question per se, I was just thinking aloud, especially that e part about memory. A computer consists of a processor and data storage. We are focussing on the processing part, which is cool, but there is the memory part as well, which needs attention.

the simplest solution would be to make it the job authors responsibility to somehow provide the needed data, essentially working as a kind of RAM in which miners can check for relevant data.

However, even with a memory system in place, there may be scenarios, in which miners have little to no incentive to use this memory.

Let's take a look at the bruteforcing a password job. I'm not saying that this is something, Elastic should be used for, and you are welcome to provide a different example, but this specific job shows Elastics shortcomings pretty well:

It is pretty much throwing random input into a function and running it until a single solution is found. There aren't multiple solutions, just one. This greatly affects how miners behave:

Miners have no incentive to share information about which inputs they already tested, because they don't want to give other miners an edge. This means, that in a worst-case scenario, many inputs are tested by multiple miners, effectively lessening Elastics power.

I'm sorry that I'm rambling.

i see what you are saying but that is no different than how all mining works now...also it is not a limitation in elastic but the miner.  a pool could easily be setup to ensure the unique work is done by all miners in the pool.

But either way...a lot of this depends on how well the author codes the job.

Edit: please keep in mind that the miner i wrote is just a proof on concept to demo all the functionality.  It is expected that is thers will come along and improve on the design, make hardware specific optimizations, etc
73  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 27, 2017, 07:48:04 PM
Elastic and memory

This is mostly me thinking aloud, to figure this out. It's very possible that questions raised here already have answers I'm unaware of.

I've been thinking about this for a little while now, maybe someone who has a little mor insight in this can give some input on that matter. As far as i know, at the moment, elastic is essentially memory-less. This means, there are only two possible job scenarios at the moment:

Job 01 is issued. Bitcoin mining is a good example, the goal is to find a magic hash, to simplify things, lets say 8 figures long, with four zeros up front.

Miners A, B, C, D, E start working on it.

A finds 00001efg
B finds 00002ghi
C finds nothing and cancels
D finds 00003ijk
E finds 00001efg, the same as miner A (in case of finding hashes, this is highly unlikely, but depending on the specific task, this is a possible scenario.

Job 02 is issued. This time, the goal is to find a specific hash. Let's say, we try to bruteforce a password (Don't, though. This is for theories sake only). The password is "abc123".

A finds nothing and cancels
B finds "abc123" first
C finds "abc123" second
D sees that the problem is solved and cancels
E sees that the problem is solved and cancels

Without memory, these are the two types of jobs possible. but both jobs suffer from lack of memory as well, while Job 02 is a prime example for it:

If we assume, that Miners A, B, C, D and E use roughly the same approach to bruteforcing, meaning, following roughly the same iterations of figures (like trying "000001", then "000002" and so on, not that this is a good way to approach this Wink ), this means that all of them try the same iterations, until the fastest one eventually hits the right solution. This is a giant loss of computing power. Now, in the specific scenario, the solution would be to generate random inputs, instead of following a system, but in other cases, this leads to the network as a whole computing functions, which already have a (negative) solution.

Having a memory system in place, miners could in theory write iterations they already tried in there. In practice, this works against their personal goals, because getting the job bounty is essentially a race. Thus, you'd want concurrent miners to work to as many negative iterations as possible.

What looks like a solution to this problem is to pay a bounty for every iteration computed, no matter how successful it is. However, this leads to the problem, that a Miner can intentionally hold back the correct answer to keep the job open.
If the bounty for finding the right solution is not high enough, sending negative results and getting paid for them may be more profitable than sending the solution.
If the bounty for finding the right solution is too high, sending negative results and helping other miners doing so may be not as appealing as hoping to find the right solution.

This is a messy situation. Here is an idea for a solution, though:

Pools.

I miners are organized in profit-sharing pools, they have incentive to exchange negative results with each other, because they are racing against another pool, which might win the race. In this scenario, the overall computation power would still be lowered, due to different pools competing against each other, but it would be higher than in a scenario, in which every miner is on their own.

Additionally, a scenario is possible, in which "spies" are registered in multiple pools, thus seeing the results of each other. Bit where would that lead? would that lead to Miners withholding information again? Would that lead to Miners avoiding pools? Oh, game theory, thou art a heartless bitch…

To summarize my train of thought: while it would be great to have a memory function, it may be hard to incentivise miners to use them.

This is it for now, the sun is stewing my brain. Will get back at it later.

I'm not sure this answers your specific question, but the design already allows the job author to set multiple iterations which provide bounties as well as specific criteria for what qualifies as a bounty for each iteration.  once all bounties for an iteration is done the miners all move  to the next iteration
74  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 26, 2017, 09:46:33 PM
Awesome work, guys!

EK, coralreefer, unvoid. Awesome!

Elastic is about to get real.  Cool

Indeed. Long time since I've seen all devs on one page at BCT thread.

I agree, hopefully we'll gain some momentum...still lots of work to be done.

btw...nice work on the node guide unvoid...
75  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 26, 2017, 04:16:38 PM
another quick update...

When EK wrote his BTC example, he identified 2 key issues.  1) We needed a more flexible memory model, and 2) Incorporating Functions into the language was needed (it was originally not incorporated due to issues w/ recursion).  I am about done with the upgrades to the ElasticPL engine which addresses these 2 issues as well as incorporates several other fixes to prepare for SN integration.

To see an example of how much more user friendly the language is now, I rewrote EK's BTC example using the language upgrades:

     https://github.com/sprocket-fpga/xel_miner/blob/master/examples/SHA256_BTC.epl

Here's what it looked like before the changes to ElasticPL:

     https://github.com/OrdinaryDude/elastic_bitcoin_miner/blob/master/test

I am still a couple weeks away from wrapping up all the changes to ElasticPL, but they should be ready to test soon.  However, there are still other key issues that still need to be addressed before everything is ready:

     1) Will we have POW, and if so what logic is needed to ensure the miner actually performed the work
     2) How to store data between iterations and distribute to miners
     3) SN Integration

These are complex issues that will take time to solve.  It will require quite a bit of change to both the Core Server and Miner and will require quite a bit of coding from both EK and myself to complete.



Well done Coralreefer.
sha256 proof-of-work example implemented in ElasticPL language - awesome!

Did you guys think about having some kind of shared state between workers/nodes per job?
I wonder how would you divide a task of some sort between workers in the network, in such a way that they do it in parallel?
(I'm not sure if my question is perhaps to generic)

Thanks.



Ida1000, item #2 above on the todo list will pretty much address this.  EK has already done this is his github, but the issue is how to make it more generic / robust so that it can handle different use cases.  Some jobs may just want be able to store their state in just a few ints, but other may require 1MB or more of data....still working through this.

Also, EK no rush getting back to me...I still have plenty to do and I know you're pretty busy right now.
76  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 26, 2017, 02:50:02 PM
another quick update...

When EK wrote his BTC example, he identified 2 key issues.  1) We needed a more flexible memory model, and 2) Incorporating Functions into the language was needed (it was originally not incorporated due to issues w/ recursion).  I am about done with the upgrades to the ElasticPL engine which addresses these 2 issues as well as incorporates several other fixes to prepare for SN integration.

To see an example of how much more user friendly the language is now, I rewrote EK's BTC example using the language upgrades:

     https://github.com/sprocket-fpga/xel_miner/blob/master/examples/SHA256_BTC.epl

Here's what it looked like before the changes to ElasticPL:

     https://github.com/OrdinaryDude/elastic_bitcoin_miner/blob/master/test

I am still a couple weeks away from wrapping up all the changes to ElasticPL, but they should be ready to test soon.  However, there are still other key issues that still need to be addressed before everything is ready:

     1) Will we have POW, and if so what logic is needed to ensure the miner actually performed the work
     2) How to store data between iterations and distribute to miners
     3) SN Integration

These are complex issues that will take time to solve.  It will require quite a bit of change to both the Core Server and Miner and will require quite a bit of coding from both EK and myself to complete.

77  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 24, 2017, 12:33:42 PM
If you are a p2p dev, we need to build an interface from the core server back to the SN (miner).  Here's some rough specs:

The interface needs to handle the following:

  - Up to 100 TPS for POW validation (including buffers / queues as necessary)
  - Up to 10 TPS for Bounty validation (including buffers / queues as necessary)
  - Up to 1 Txn per 30 sec for Job Submission validation (including buffers / queues as necessary)

   ( These TPS would are just rough #s that could occur if a author creates a super simple job or in the future state when there are 10's of jobs and hundreds of miners )

  - Logic to Temporarily / Permanently blacklist IPs / Job Authors / Miners
  - Protection to ensure spam does not take out the SN

  - Protocol is TBD
  - Messages / layout are still TBD

  - This interface will be written in C and incorporated into the existing miner

All the validation logic that will be called exists in the miner and was coded by me.  The miner just needs an inbound interface that can handle these requests from multiple core servers.  Details of the interface design would need to be worked through with EK as his code is what would be calling it.


So, one way the SN hosts can shield themselves from attacks is by hosting their own public nodes, and have the SN only connect to their known public nodes, which will then relay the produced work to the network. This technique worked very well for the BitShares community, where there are only 101 super-delegates, and attacking them could bring the whole network down. So the witness delegate nodes, never accepted incoming connections.

I'll need to dig into the architecture more to understand all the constraints.


One other interface requirement I just remembered...a channel for the core server to get the status of the SN and check how much pending work is in it's queue.  This would be used for load balancing the event the core server is connected to multiple SNs.
78  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 24, 2017, 11:53:51 AM
I totally understand the feeling. I'm a dev myself and left my cushy job to experiment with p2p and machine learning. I turned down plenty of offers exactly for that reason - so that I can focus on my ideas without anyone forcing me in a specific direction.

I don't think anyone is asking you to be their b*tch. I do want to see your work get rewarded though.

What can we help with? Is there a list of tasks that need help getting done?


If you are a p2p dev, we need to build an interface from the core server back to the SN (miner).  Here's some rough specs:

The interface needs to handle the following:

  - Up to 100 TPS for POW validation (including buffers / queues as necessary)
  - Up to 10 TPS for Bounty validation (including buffers / queues as necessary)
  - Up to 1 Txn per 30 sec for Job Submission validation (including buffers / queues as necessary)

   ( These TPS would are just rough #s that could occur if a author creates a super simple job or in the future state when there are 10's of jobs and hundreds of miners )

  - Logic to Temporarily / Permanently blacklist IPs / Job Authors / Miners
  - Protection to ensure spam does not take out the SN

  - Protocol is TBD
  - Messages / layout are still TBD

  - This interface will be written in C and incorporated into the existing miner

All the validation logic that will be called exists in the miner and was coded by me.  The miner just needs an inbound interface that can handle these requests from multiple core servers.  Details of the interface design would need to be worked through with EK as his code is what would be calling it.
79  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 20, 2017, 12:56:16 PM
I can't believe that we can't find a motivated C dev with networking experience to work on this project. How is that possible with so much talent in these forums? Did anyone put any formal ad for this somewhere?

It's going to take more than motivation...as I mentioned in my post a while back (that got buried)...any new dev to the project is going to be working on uncharted territory and is going to have to figure out most things for themselves w/o any design or hand holding.  It's probably, going to be a little challenging to find someone that can actually provide the help this project needs.
80  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][XEL] Elastic Project - The Decentralized Supercomputer on: May 20, 2017, 12:17:52 PM
If you have not understood yet, I don't care about this voting, I think that all this system is wrong. My opinion about lite wallet is irrelevant and I voted 'NO' only because EK told he will vote so when he was asked, as I believe that the one who do all the work should also manage or at least choose direction and crucial decisions for project they created and built WITHOUT help of very loud persons who want stuff and come with demands/accusation as people who voluntary chose to spent time on this project owns them something.
And all this demands/stuff signed usually by "we", "the people", "community" etc...  Can you understand this simple concept?

P.S.
And all those endless conversation instead of providing actual help developers NEED, But I am sure as Litewallet will come out, there will be endless/limitless donations, so it's all good:)

I think yosir has a point.  I have no idea whether or not a lite wallet is a good idea or not, so I'm not even sure which I would have voted for, but....

1) EK said he'd vote against the lite wallet...yes his vote is the same as everyone else....except....you are still dependent on EK creating it for you.  I'm not really completely sure what the lite wallet entails or how much work it would be, so keep in mind it may be a while until he is able to deliver the changes.

2) I still haven't seen a plan for what everyone thinks will happen once the lite wallet is released.  Yes there may be XEL available to help fund some work, but unless you find someone who can pickup the C coding, the project will be in the same place it is today.  Also, keep in mind...this project is pretty much uncharted territory.  This dev is going have to figure most everything for themselves w/o any sort of formal design...finding a dev that can do that is probably going to be a challenge.  

As I've said all along, my only consideration is how can we get an additional dev to help with the C network code...if the lite wallet solves that, great.  But I'm not sure it will.  I would have prefered to have seen some capable devs express interest, then the community figure out the best was to get them involved...that would have helped determine if the lite wallet was the best approach or not.

Pages: « 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!