Let Q be a quiver, g the associated Kac-Moody algebra, and n a maximal nilpotent subalgebra of g. Assume for simplicity that Q has no multiple edges, and therefore that g is simply-laced. In [Ri90], Ringel identified U_q(n) with a subalgebra of the Hall algebra of the category of representations of Q over F_q. Green [Gr95] showed that you can recover the Hopf algebra structure on U_q(n) from the Hall algebra perspective, as well. To get U(n), you either specialize q to 1 or perform the Hall algebra construction using Euler characteristics of complex varieties rather than cardinalities of F_q varieties. Ringel wrote two survey articles on this isomorphism [Ri92, Ri93]; it can also be found in the lecture notes of Schiffmann [Sc09a (Lecture 3)].

From this construction one gets natural bases for U_q(n) and U(n) indexed by isomorphism classes of quiver representations. Unfortunately, these bases depend on the orientations of Q, which constitute an arbitrary choice. In [Lu90, Lu91], Lusztig used perverse sheaves (or intersection cohomology) to "fix" this problem by defining better-behaved bases, known as the "canonical bases" of U_q(n) and U(n). The original paper [Lu90] treats finite-type simply-laced Lie algebras, and [Lu91] treats the general case.

Surveys of this construction with all of the technical details suppressed can be found in Section 19 of Lusztig's ICM address [Lu91-ICM] and in a short set of notes by Salisbury [Sa10]. On the other extreme, a detailed account appears in a second set of lecture notes by Schiffmann [Sc09b (Lecture 3)].

The canonical basis for U_q(g) was constructed in a different way by Kashiwara around the same time [Ka91]; he called it the "global crystal basis". The fact that Kashiwara's basis coincides with Lusztig's was proven by Lusztig and Grojnowski [GL93].

In Section 12 of [Lu91], Lusztig showed that U(n) may also be identified with a certain ring of constructible functions on the "nilpotent variety" associated to Q, endowed with a certain (noncommutative) convolution product. Using this identification, Lusztig defined a new basis for U(n) called the "semicanonical basis", first in the affine case [Lu92] (which is very long, and contains a lot more stuff) and much later in the general case [Lu00] (which is very short). In addition to the references above, you can find summaries in many of the papers of Geiss, Leclerc, and Schröer [GLS05 (Section 5), GLS06 (Section 9), GLS08 (Section 7)] as well as Leclerc's ICM address [Le10 (Section 5)].

Though the canonical and semicanonical bases have many elements in common, they are different except in type A_n for n<5. This is shown in [GLS05, 7.6] using [Le03]. Roughly speaking, the failure of these two bases to coincide can be blamed on the failure of the singular support of a perverse sheaf to be an irreducible component of the nilpotent variety. An example of this failure is given in [KS97].

Both the canonical basis and the semicanonical basis have the beautiful property that, when you apply it to a lowest weight vector of an irreducible representation, the nonzero vectors that arise form a basis for that representation. For the semicanonical basis, this is proved in [Lu00]. A geometric interpretation of this fact is provided by Nakajima [Na94 (Section 10)]. See also [Na98] for a variant of this construction using homology rather than constructible functions. A survey of Lusztig's and Nakajima's constructions is given in [Sa06].

The graded dual of the Hopf algebra U(n) is the coordinate ring C[N] of the group N (see for example [CP, 4.1.17] and [GLS08, 5.1]). Multiplication in U(n) turns into convolution in C[N], and comultiplication turns into multiplication of functions. The dual of the semicanonical basis in known (unsurprisingly) as the "dual semicanonical basis". This basis has some nice multiplicative properties. While it is not quite true that the product of two basis elements is again a basis element, it is true in a large collection of cases, and every basis element admits a unique factorization into smaller basis elements. This is explained in Section 7 of [GLS05], and may be taken as one piece of evidence that the semicanonical basis is (in certain ways) nicer than the canonical basis.

The preprojective algebra of Q is an algebra obtained by doubling the arrows and modding out by a certain ideal in the path algebra. The definition was introduced by Gelfand and Ponomarev at a conference in 1979; see [CB99, Ri98] for a written account. In modern language, its definition can be motivated by the statement that the moduli stack of representations of the preprojective algebra of Q is isomorphic to the cotangent bundle to the moduli stack of representations of Q. (This stacky perspective, however, is completely unnecessary for our purposes.)

Lusztig's nilpotent variety parameterizes representations of the preprojective algebra in which sufficiently long paths act trivially, thus the connection between preprojective algebras and semicanonical bases is completely transparent. What is not so obvious is the link between preprojective algebras and the theory of cluster algebras. Geiss, Leclerc, and Schröer show that the cluster algebra structure on C[N] is in some sense a shadow of a deeper structure on the representation category of the preprojective algebra. They do this first in the finite-type simply-laced case [GLS06] and then in the general Kac-Moody case [GLS07b]. This is how they prove that the cluster monomials in C[N] belong to the dual semicanonical basis. They conjecture that the cluster monomials belong to the cononical basis as well [GLS08, 19.1], but this conjecture is still open.

[CP] Chari and Pressley, A guide to quantum groups

[CB98] Crawley-Boevey, DMV Lectures on Representations of quivers, preprojective algebras and deformations of quotient singularities

[GLS05] Geiss, Leclerc, and Schröer, Semicanonical bases and preprojective algebras

[GLS06] Geiss, Leclerc, and Schröer, Rigid modules over preprojective algebras

[GLS07a] Geiss, Leclerc, and Schröer, Semicanonical bases and preprojective algebras II: a multiplication formula

[GLS07b] Geiss, Leclerc, and Schröer, Cluster algebra structures and semicanonical bases for unipotent groups

[GLS08] Geiss, Leclerc, and Schröer, Preprojective algebras and cluster algebras

[GL93] Lusztig and Grojnowski, A comparison of bases of quantized enveloping algebras

[Gr95] Green, Hall algebras, hereditary algebras and quantum groups

[Ka91] Kashiwara, On crystal bases of the q-analogue of universal enveloping algebras

[KS97] Kashiwara and Saito, Geometric construction of crystal bases

[Le03] Leclerc, Imaginary vectors in the dual canonical basis of U_q(n)

[Le10] Leclerc, Cluster algebras and representation theory

[Lu90] Lusztig, Canonical bases arising from quantized enveloping algebras

[Lu91] Lusztig, Quivers, perverse sheaves, and quantized enveloping algebras

[Lu91-ICM] Lusztig, Intersection cohomology methods in representation theory

[Lu92] Lusztig, Affine quivers and canonical bases

[Lu00] Lusztig, Semicanonical bases arising from enveloping algebras

[Na94] Nakajima, Instantons on ALE spaces, quiver varieties, and Kac-Moody algebras

[Na98] Nakajima, Quiver varieties and Kac-Moody algebras

[Ri90] Ringel, Hall algebras and quantum groups

[Ri92] Ringel, From representations of quivers via Hall and Loewy algebras to quantum groups

[Ri93] Ringel, The Hall algebra approach to quantum groups

[Ri98] Ringel, The preprojective algebra of a quiver

[Sa06] Savage, Finite-dimensional algebras and quivers

[Sa10] Salisbury, Quantum groups and Hall algebras

[Sc09a] Schiffmann, Lectures on Hall algebras

[Sc09b] Schiffmann, Lectures on canonical and crystal bases of Hall algebras